blob: 67d5b0b1826beb7612bb099e6710cfb2dc4a7ab3 [file] [log] [blame]
// Copyright 2012 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
{namespace gitiles}
/**
* Common header for Gitiles.
*/
{template .header stricthtml="false"}
{@param title: ?} /** title for this page. Always suffixed with repository name and a sitewide
title. */
{@param? repositoryName: ?} /** repository name for this page, if applicable. */
{@param? menuEntries: ?} /** optional list of menu entries with "text" and optional "url" keys.
*/
{@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. */
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>
{$title}
{if $repositoryName}
{sp}- {$repositoryName}
{/if}
{sp}- {msg desc="name of the application"}{gitiles.SITE_TITLE}{/msg}
</title>
<link rel="stylesheet" type="text/css" href="{gitiles.BASE_CSS_URL |blessStringAsTrustedResourceUrlForLegacy}">
{if $css and length($css)}
{for $url in $css}
<link rel="stylesheet" type="text/css" href="{$url |blessStringAsTrustedResourceUrlForLegacy}">
{/for}
{/if}
{delcall gitiles.customHeadTagPart variant="$customVariant ?: ''" /}
</head>
<body class="Site">
<header class="Site-header">
<div class="Header">
{delcall gitiles.customHeader variant="$customVariant ?: ''" /}
{if $menuEntries and length($menuEntries)}
<div class="Header-menu">
{for $entry in $menuEntries}
{sp}
{if $entry.url}
<a class="Header-menuItem" href="{$entry.url}">{$entry.text}</a>
{else}
<span class="Header-menuItem Header-menuItem--noAction">{$entry.text}</span>
{/if}
{/for}
{sp}
</div>
{/if}
</div>
</header>
<div class="Site-content">
<div class="Container {if $containerClass}{$containerClass}{/if}">
{if $breadcrumbs and length($breadcrumbs)}
<div class="Breadcrumbs">
{for $entry in $breadcrumbs}
{if not isFirst($entry)}{sp}/{sp}{/if}
{if not isLast($entry)}
<a class="Breadcrumbs-crumb" href="{$entry.url}">{$entry.text}</a>
{else}
<span class="Breadcrumbs-crumb">{$entry.text}</span>
{/if}
{/for}
</div>
{/if}
{/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}
<!-- default customHeader -->
<div class="Header-title">
{msg desc="short name of the application"}{gitiles.SITE_TITLE}{/msg}
</div>
{/deltemplate}
/**
* Footer 'powered by' element
*
* Please call this in custom variants as well.
*/
{deltemplate gitiles.footerPoweredBy}
<span class="Footer-poweredBy">
Powered by <a href="https://gerrit.googlesource.com/gitiles/">Gitiles</a>
</span>
{/deltemplate}
/**
* Footer format badge
*
* You can use this in custom footers as well.
*/
{deltemplate gitiles.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>
{/deltemplate}
/**
* Default Footer
*/
{deltemplate gitiles.customFooter}
<!-- default customFooter -->
<footer class="Site-footer">
<div class="Footer">
{delcall gitiles.footerPoweredBy /}
{delcall gitiles.footerFormatBadge /}
</div>
</footer>
{/deltemplate}
/**
* Main footer.
*
* The footer tag part can be customized by creating a customFooter
* variant template.
*/
{template .footer stricthtml="false"}
{@param? customVariant: ?} /** variant name for custom styling. */
</div> <!-- Container -->
</div> <!-- Site-content -->
{delcall gitiles.customFooter variant="$customVariant ?: ''" /}
</body>
</html>
{/template}
/**
* Placeholder for streaming rendering.
*
* Insert this in a template to use with
* Renderer#renderStreaming(HttpServletResponse, String).
*/
{template .streamingPlaceholder}
<br id="STREAMED_OUTPUT_BLOCK">
{/template}