Improve styling/branding options In addition to the header introduce more customizable template parts that are depending on 'customVariant' to make injection of HTML at various places possible. The 'customHeader' config variable is renamed to 'customVariant', but the old name is still recognised as an alias for the new name to ensure backwards compatibility. The new template parts are: customHeadTagPart -> at the end of the <head> tag customFooter -> The footer tag with contents The new fixed templates .footerFormatBadge and .footerPoweredBy can be used in custom footers. Change-Id: I95a97a3805f4fb3011bc932d4f9799ec5a2c78c4
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/BlameDetail.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/BlameDetail.soy index f5110d8..909ee0f 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/BlameDetail.soy +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/BlameDetail.soy
@@ -19,7 +19,7 @@ * @param title human-readable revision name. * @param repositoryName name of this repository. * @param? menuEntries menu entries. - * @param? headerVariant variant name for custom header. + * @param? customVariant variant name for custom styling. * @param breadcrumbs breadcrumbs for this page. * @param data blob data, matching the params for .blobBox. * @param? regions for non-binary files, list of regions, one per line, with the @@ -82,5 +82,7 @@ </div> {/if} -{call .footer /} +{call .footer} + {param customVariant: $customVariant /} +{/call} {/template}
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/Common.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/Common.soy index 2a7ba40..9ca25d3 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/Common.soy +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/Common.soy
@@ -21,7 +21,7 @@ * @param? repositoryName repository name for this page, if applicable. * @param? menuEntries optional list of menu entries with "text" and optional * "url" keys. - * @param? headerVariant variant name for custom header. + * @param? customVariant variant name for custom styling. * @param breadcrumbs navigation breadcrumbs for this page. * @param? css optional list of CSS URLs to include. * @param? containerClass optional class to append to the main container. @@ -45,11 +45,13 @@ <link rel="stylesheet" type="text/css" href="{$url}"> {/foreach} {/if} + {delcall gitiles.customHeadTagPart variant="$customVariant ?: ''" /} + </head> <body class="Site"> <header class="Site-header"> <div class="Header"> - {delcall gitiles.customHeader variant="$headerVariant ?: 'default'" /} + {delcall gitiles.customHeader variant="$customVariant ?: ''" /} {if $menuEntries and length($menuEntries)} <div class="Header-menu"> @@ -84,32 +86,74 @@ {/template} /** + * Default (empty) custom head tag part + * + * This can be used to include per-project CSS/JS by + * providing custom variants. + */ +{deltemplate gitiles.customHeadTagPart} + <!-- default customHeadTagPart --> +{/deltemplate} + +/** * Default custom header implementation for Gitiles. */ -{deltemplate gitiles.customHeader variant="'default'"} +{deltemplate gitiles.customHeader} +<!-- default customHeader --> <div class="Header-title"> {msg desc="short name of the application"}{gitiles.SITE_TITLE}{/msg} </div> {/deltemplate} /** - * Standard footer. + * Footer 'powered by' element + * + * Please call this in custom variants as well. + */ +{template .footerPoweredBy} +<span class="Footer-poweredBy"> + Powered by <a href="https://code.google.com/p/gitiles/">Gitiles</a> +</span> +{/template} + +/** + * Footer format badge + * + * You can use this in custom footers as well. + */ +{template .footerFormatBadge} +<span class="Footer-formats"> + <a class="u-monospace Footer-formatsItem" href="?format=TEXT">{msg desc="text format"}txt{/msg}</a> + {sp} + <a class="u-monospace Footer-formatsItem" href="?format=JSON">{msg desc="JSON format"}json{/msg}</a> +</span> +{/template} + +/** + * Default Footer + */ +{deltemplate gitiles.customFooter} +<!-- default customFooter --> +<footer class="Site-footer"> + <div class="Footer"> + {call gitiles.footerPoweredBy /} + {call gitiles.footerFormatBadge /} + </div> +</footer> +{/deltemplate} + +/** + * Main footer. + * + * The footer tag part can be customized by creating a customFooter + * variant template. + * + * @param? customVariant variant name for custom styling. */ {template .footer} </div> <!-- Container --> </div> <!-- Site-content --> - <footer class="Site-footer"> - <div class="Footer"> - <span class="Footer-poweredBy"> - Powered by <a href="https://code.google.com/p/gitiles/">Gitiles</a> - </span> - <span class="Footer-formats"> - <a class="u-monospace Footer-formatsItem" href="?format=TEXT">{msg desc="text format"}txt{/msg}</a> - {sp} - <a class="u-monospace Footer-formatsItem" href="?format=JSON">{msg desc="JSON format"}json{/msg}</a> - </span> - </div> - </footer> + {delcall gitiles.customFooter variant="$customVariant ?: ''" /} </body> </html> {/template}
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/DiffDetail.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/DiffDetail.soy index d800d2e..252ab7b 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/DiffDetail.soy +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/DiffDetail.soy
@@ -19,7 +19,7 @@ * @param title human-readable revision name. * @param repositoryName name of this repository. * @param? menuEntries menu entries. - * @param? headerVariant variant name for custom header. + * @param? customVariant variant name for custom styling. * @param breadcrumbs breadcrumbs for this page. * @param? commit optional commit for which diffs are displayed, with keys * corresponding to the gitiles.commitDetail template (minus "diffTree"). @@ -32,7 +32,9 @@ {/if} {call .streamingPlaceholder /} -{call .footer /} +{call .footer} + {param customVariant: $customVariant /} +{/call} {/template} /**
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/HostIndex.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/HostIndex.soy index 7ac3581..ab3b18c 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/HostIndex.soy +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/HostIndex.soy
@@ -18,7 +18,7 @@ * * @param hostName host name. * @param? menuEntries menu entries. - * @param? headerVariant variant name for custom header. + * @param? customVariant variant name for custom styling. * @param? prefix prefix path for matching repositories. * @param? breadcrumbs map of breadcrumbs for header. * @param repositories list of repository description maps with name, cloneUrl, @@ -29,7 +29,7 @@ {param title: $prefix ? $prefix : $hostName ? $hostName + ' Git repositories' : 'Git repositories' /} {param menuEntries: $menuEntries /} {param breadcrumbs: $breadcrumbs /} - {param headerVariant: $headerVariant /} + {param customVariant: $customVariant /} {/call} {if length($repositories)} @@ -62,5 +62,8 @@ {/foreach} </div> {/if} -{call .footer /} + +{call .footer} + {param customVariant: $customVariant /} +{/call} {/template}
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/LogDetail.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/LogDetail.soy index ba2c24d..be7c9b3 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/LogDetail.soy +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/LogDetail.soy
@@ -19,7 +19,7 @@ * @param title human-readable revision name. * @param repositoryName name of this repository. * @param? menuEntries menu entries. - * @param? headerVariant variant name for custom header. + * @param? customVariant variant name for custom styling. * @param breadcrumbs breadcrumbs for this page. * @param? tags optional list of tags encountered when peeling this object, with * keys corresponding to gitiles.tagDetail. @@ -35,7 +35,9 @@ {call .streamingPlaceholder /} -{call .footer /} +{call .footer} + {param customVariant: $customVariant /} +{/call} {/template}
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/PathDetail.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/PathDetail.soy index e2349d2..c4c5d5f 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/PathDetail.soy +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/PathDetail.soy
@@ -19,7 +19,7 @@ * @param title human-readable name of this path. * @param repositoryName name of this repository. * @param? menuEntries menu entries. - * @param? headerVariant variant name for custom header. + * @param? customVariant variant name for custom styling. * @param breadcrumbs breadcrumbs for this page. * @param type path type, matching one of the constant names defined in * org.eclipse.jgit.lib.FileMode. @@ -51,7 +51,9 @@ </div> {/switch} -{call .footer /} +{call .footer} + {param customVariant: $customVariant /} +{/call} {/template} /**
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RefList.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RefList.soy index 74f89d0..be9c94a 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RefList.soy +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RefList.soy
@@ -19,7 +19,7 @@ * * @param repositoryName name of this repository. * @param? menuEntries menu entries. - * @param? headerVariant variant name for custom header. + * @param? customVariant variant name for custom styling. * @param breadcrumbs breadcrumbs for this page. * @param branches list of branch objects with url, name, and isHead keys. * @param tags list of tag objects with url and name keys. @@ -29,7 +29,7 @@ {param title: 'Refs' /} {param repositoryName: $repositoryName /} {param menuEntries: $menuEntries /} - {param headerVariant: $headerVariant /} + {param customVariant: $customVariant /} {param breadcrumbs: $breadcrumbs /} {/call} @@ -49,7 +49,9 @@ {/if} </div> -{call .footer /} +{call .footer} + {param customVariant: $customVariant /} +{/call} {/template} /**
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RepositoryIndex.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RepositoryIndex.soy index ec6e67e..3ab7d5b 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RepositoryIndex.soy +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RepositoryIndex.soy
@@ -18,7 +18,7 @@ * * @param repositoryName name of this repository. * @param? menuEntries menu entries. - * @param? headerVariant variant name for custom header. + * @param? customVariant variant name for custom styling. * @param breadcrumbs breadcrumbs for this page. * @param cloneUrl clone URL for this repository. * @param description description text of the repository. @@ -36,7 +36,7 @@ {param title: $repositoryName /} {param repositoryName: null /} {param menuEntries: $menuEntries /} - {param headerVariant: $headerVariant /} + {param customVariant: $customVariant /} {param breadcrumbs: $breadcrumbs /} {param css: [gitiles.DOC_CSS_URL] /} {/call} @@ -45,7 +45,7 @@ {param title: $repositoryName /} {param repositoryName: null /} {param menuEntries: $menuEntries /} - {param headerVariant: $headerVariant /} + {param customVariant: $customVariant /} {param breadcrumbs: $breadcrumbs /} {/call} {/if} @@ -90,7 +90,9 @@ {call .tags_ data="all" /} {/if} -{call .footer /} +{call .footer} + {param customVariant: $customVariant /} +{/call} {/template} /**
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RevisionDetail.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RevisionDetail.soy index cfed23e..2bfabe0 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RevisionDetail.soy +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/RevisionDetail.soy
@@ -19,7 +19,7 @@ * @param title human-readable revision name. * @param repositoryName name of this repository. * @param? menuEntries menu entries. - * @param? headerVariant variant name for custom header. + * @param? customVariant variant name for styling. * @param breadcrumbs breadcrumbs for this page. * @param? hasBlob set to true if the revision or its peeled value is a blob. * @param? hasReadme set to true if the treeDetail has readmeHtml. @@ -59,5 +59,7 @@ {/switch} {/foreach} -{call .footer /} +{call .footer} + {param customVariant: $customVariant /} +{/call} {/template}