blob: e8ec346e8734109e12cb68834c4559e52572ebc1 [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 com.google.gitiles.templates.RepositoryIndex}
import * as common from 'com/google/gitiles/templates/Common.soy';
import * as refList from 'com/google/gitiles/templates/RefList.soy';
/**
* Index page for a repository.
*/
{template repositoryIndex stricthtml="false"}
{@param repositoryName: ?} /** name of this repository. */
{@param? menuEntries: ?} /** menu entries. */
{@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. */
{@param? mirroredFromUrl: ?} /** URL this repository is mirrored from. */
{@param branches: ?} /** list of branch objects with url, name, and isHead keys. */
{@param? moreBranchesUrl: ?} /** URL to show more branches, if necessary. */
{@param tags: ?} /** list of tag objects with url and name keys. */
{@param? moreTagsUrl: ?} /** URL to show more branches, if necessary. */
{@param hasLog: ?} /** whether a log should be shown for HEAD. */
{@param? readmeHtml: ?} /** optional rendered README.md contents. */
{@inject staticUrls: ?}
{if $readmeHtml}
{call common.header data="all"}
{param title: $repositoryName /}
{param repositoryName: null /}
{param menuEntries: $menuEntries /}
{param customVariant: $customVariant /}
{param breadcrumbs: $breadcrumbs /}
{param css: [$staticUrls['DOC_CSS_URL']] /}
{/call}
{else}
{call common.header}
{param title: $repositoryName /}
{param repositoryName: null /}
{param menuEntries: $menuEntries /}
{param customVariant: $customVariant /}
{param breadcrumbs: $breadcrumbs /}
{/call}
{/if}
{if $description}
<h2 class="RepoDescription">{$description}</h2>
{/if}
{if $mirroredFromUrl}
<div class="RepoMirroredFrom">
{msg desc="Informational text describing source of repository"}
Mirrored from <a href="{$mirroredFromUrl}">{$mirroredFromUrl}</a>
{/msg}
</div>
{/if}
<div class="CloneRepo">
<div class="CloneRepo-title">Clone this repo:</div>
<input id="clone-repo-input" type="text" class="u-monospace CloneRepo-command"
readonly="readonly" value="git clone {$cloneUrl}">
</div>
{if $hasLog and (length($branches) or length($tags))}
<div class="RepoShortlog">
<div class="RepoShortlog-refs">
{call branches_ data="all" /}
{call tags_ data="all" /}
</div>
<div class="RepoShortlog-log">
{call common.streamingPlaceholder /}
{if $readmeHtml}
<div class="doc RepoIndexDoc">{$readmeHtml}</div>
{/if}
</div>
</div>
{elseif $hasLog}
{call common.streamingPlaceholder /}
{elseif length($branches) or length($tags)}
{call branches_ data="all" /}
{call tags_ data="all" /}
{else}
<h1 class="EmptyRepo-header">Empty Repository</h1>
<p class="EmptyRepo-description">This repository is empty. Push to it to show branches and history.</p>
{/if}
{call common.footer}
{param customVariant: $customVariant /}
{/call}
<script>
{lb}
let f = document.getElementById("clone-repo-input");
f.onclick = () => {lb}
f.focus();
if (f.selectionStart === f.selectionEnd) {lb}
f.select();
{rb}
{rb};
{rb}
</script>
{/template}
/**
* List of branches.
*/
{template branches_ visibility="private"}
{@param? branches: ?} /** list of branch objects with url and name keys. */
{@param? moreBranchesUrl: ?} /** URL to show more branches, if necessary. */
{if length($branches)}
{call refList.refList}
{param type: 'Branches' /}
{param refs: $branches /}
{param variant: 'responsive' /}
{/call}
{if $moreBranchesUrl}
<a href="{$moreBranchesUrl}">{msg desc="link to view more branches"}More...{/msg}</a>
{/if}
{/if}
{/template}
/**
* List of tags.
*/
{template tags_ visibility="private"}
{@param? tags: ?} /** list of branch objects with url and name keys. */
{@param? moreTagsUrl: ?} /** URL to show more tags, if necessary. */
{if length($tags)}
{call refList.refList}
{param type: 'Tags' /}
{param refs: $tags /}
{param variant: 'responsive' /}
{/call}
{if $moreTagsUrl}
<a href="{$moreTagsUrl}">{msg desc="link to view more tags"}More...{/msg}</a>
{/if}
{/if}
{/template}