summaryrefslogtreecommitdiffstats
path: root/templates/repo/branch
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--templates/repo/branch/list.tmpl262
-rw-r--r--templates/repo/branch_dropdown.tmpl89
2 files changed, 351 insertions, 0 deletions
diff --git a/templates/repo/branch/list.tmpl b/templates/repo/branch/list.tmpl
new file mode 100644
index 0000000..f5bffb0
--- /dev/null
+++ b/templates/repo/branch/list.tmpl
@@ -0,0 +1,262 @@
+{{template "base/head" .}}
+<div role="main" aria-label="{{.Title}}" class="page-content ui repository branches">
+ {{template "repo/header" .}}
+ <div class="ui container">
+ {{template "base/alert" .}}
+ {{template "repo/sub_menu" .}}
+ {{if .DefaultBranchBranch}}
+ <h4 class="ui top attached header">
+ {{ctx.Locale.Tr "repo.default_branch"}}
+ {{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted)}}
+ <a role="button" class="right" href="{{.RepoLink}}/settings/branches" data-tooltip-content="{{ctx.Locale.Tr "repo.settings.branches.switch_default_branch"}}">
+ {{svg "octicon-arrow-switch"}}
+ </a>
+ {{end}}
+ </h4>
+
+ <div class="ui attached table segment">
+ <table class="ui very basic striped fixed table single line">
+ <tbody>
+ <tr>
+ <td>
+ <div class="flex-text-block">
+ <a class="gt-ellipsis" href="{{.RepoLink}}/src/branch/{{PathEscapeSegments .DefaultBranchBranch.DBBranch.Name}}">{{.DefaultBranchBranch.DBBranch.Name}}</a>
+ {{if .DefaultBranchBranch.IsProtected}}
+ <span data-tooltip-content="{{ctx.Locale.Tr "repo.settings.protected_branch"}}">{{svg "octicon-shield-lock"}}</span>
+ {{end}}
+ <button class="btn interact-fg tw-px-1" data-clipboard-text="{{.DefaultBranchBranch.DBBranch.Name}}" data-tooltip-content="{{ctx.Locale.Tr "copy_branch"}}">{{svg "octicon-copy" 14}}</button>
+ {{template "repo/commit_statuses" dict "Status" (index $.CommitStatus .DefaultBranchBranch.DBBranch.CommitID) "Statuses" (index $.CommitStatuses .DefaultBranchBranch.DBBranch.CommitID)}}
+ </div>
+ <p class="info tw-flex tw-items-center tw-my-1">{{svg "octicon-git-commit" 16 "tw-mr-1"}}<a href="{{.RepoLink}}/commit/{{PathEscape .DefaultBranchBranch.DBBranch.CommitID}}">{{ShortSha .DefaultBranchBranch.DBBranch.CommitID}}</a> · <span class="commit-message">{{RenderCommitMessage $.Context .DefaultBranchBranch.DBBranch.CommitMessage (.Repository.ComposeMetas ctx)}}</span> · {{ctx.Locale.Tr "org.repo_updated" (TimeSince .DefaultBranchBranch.DBBranch.CommitTime.AsTime ctx.Locale)}} {{if .DefaultBranchBranch.DBBranch.Pusher}} &nbsp;{{template "shared/user/avatarlink" dict "user" .DefaultBranchBranch.DBBranch.Pusher}}{{template "shared/user/namelink" .DefaultBranchBranch.DBBranch.Pusher}}{{end}}</p>
+ </td>
+ <td class="right aligned middle aligned overflow-visible">
+ {{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted)}}
+ <button class="btn interact-bg show-create-branch-modal tw-p-2"
+ data-modal="#create-branch-modal"
+ data-branch-from="{{$.DefaultBranchBranch.DBBranch.Name}}"
+ data-branch-from-urlcomponent="{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}"
+ data-tooltip-content="{{ctx.Locale.Tr "repo.branch.new_branch_from" ($.DefaultBranchBranch.DBBranch.Name)}}"
+ >
+ {{svg "octicon-git-branch"}}
+ </button>
+ {{end}}
+ {{if .EnableFeed}}
+ <a role="button" class="btn interact-bg tw-p-2" href="{{$.FeedURL}}/rss/branch/{{PathEscapeSegments .DefaultBranchBranch.DBBranch.Name}}" data-tooltip-content="{{ctx.Locale.Tr "rss_feed"}}">{{svg "octicon-rss"}}</a>
+ {{end}}
+ {{if not $.DisableDownloadSourceArchives}}
+ <div class="ui dropdown btn interact-bg tw-p-2" data-tooltip-content="{{ctx.Locale.Tr "repo.branch.download" ($.DefaultBranchBranch.DBBranch.Name)}}">
+ {{svg "octicon-download"}}
+ <div class="menu">
+ <a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}.zip" rel="nofollow">{{svg "octicon-file-zip"}}&nbsp;ZIP</a>
+ <a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}.tar.gz" rel="nofollow">{{svg "octicon-file-zip"}}&nbsp;TAR.GZ</a>
+ </div>
+ </div>
+ {{end}}
+ {{if and $.IsWriter (not $.Repository.IsArchived) (not .IsDeleted) (not $.IsMirror)}}
+ <button class="btn interact-bg tw-p-2 show-modal show-rename-branch-modal"
+ data-is-default-branch="true"
+ data-modal="#rename-branch-modal"
+ data-old-branch-name="{{$.DefaultBranchBranch.DBBranch.Name}}"
+ data-tooltip-content="{{ctx.Locale.Tr "repo.branch.rename" ($.DefaultBranchBranch.DBBranch.Name)}}"
+ >
+ {{svg "octicon-pencil"}}
+ </button>
+ {{end}}
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ {{end}}
+
+ <h4 class="ui top attached header tw-flex tw-items-center tw-justify-between">
+ <div class="tw-flex tw-items-center">
+ {{ctx.Locale.Tr "repo.branches"}}
+ </div>
+ </h4>
+
+ <div class="ui attached segment">
+ <form class="ignore-dirty" method="get">
+ {{template "shared/search/combo" dict "Value" .Keyword "Placeholder" (ctx.Locale.Tr "search.branch_kind")}}
+ </form>
+ </div>
+
+ <div class="ui attached table segment">
+ <table class="ui very basic striped fixed table single line">
+ <tbody>
+ {{range .Branches}}
+ <tr>
+ <td class="eight wide">
+ {{if .DBBranch.IsDeleted}}
+ <div class="flex-text-block">
+ <span class="gt-ellipsis">{{.DBBranch.Name}}</span>
+ <button class="btn interact-fg tw-px-1" data-clipboard-text="{{.DBBranch.Name}}" data-tooltip-content="{{ctx.Locale.Tr "copy_branch"}}">{{svg "octicon-copy" 14}}</button>
+ </div>
+ <p class="info">{{ctx.Locale.Tr "repo.branch.deleted_by" .DBBranch.DeletedBy.Name}} {{TimeSinceUnix .DBBranch.DeletedUnix ctx.Locale}}</p>
+ {{else}}
+ <div class="flex-text-block">
+ <a class="gt-ellipsis" href="{{$.RepoLink}}/src/branch/{{PathEscapeSegments .DBBranch.Name}}">{{.DBBranch.Name}}</a>
+ {{if .IsProtected}}
+ <span data-tooltip-content="{{ctx.Locale.Tr "repo.settings.protected_branch"}}">{{svg "octicon-shield-lock"}}</span>
+ {{end}}
+ <button class="btn interact-fg tw-px-1" data-clipboard-text="{{.DBBranch.Name}}" data-tooltip-content="{{ctx.Locale.Tr "copy_branch"}}">{{svg "octicon-copy" 14}}</button>
+ {{template "repo/commit_statuses" dict "Status" (index $.CommitStatus .DBBranch.CommitID) "Statuses" (index $.CommitStatuses .DBBranch.CommitID)}}
+ </div>
+ <p class="info tw-flex tw-items-center tw-my-1">{{svg "octicon-git-commit" 16 "tw-mr-1"}}<a href="{{$.RepoLink}}/commit/{{PathEscape .DBBranch.CommitID}}">{{ShortSha .DBBranch.CommitID}}</a> · <span class="commit-message">{{RenderCommitMessage $.Context .DBBranch.CommitMessage ($.Repository.ComposeMetas ctx)}}</span> · {{ctx.Locale.Tr "org.repo_updated" (TimeSince .DBBranch.CommitTime.AsTime ctx.Locale)}} {{if .DBBranch.Pusher}} &nbsp;{{template "shared/user/avatarlink" dict "user" .DBBranch.Pusher}} &nbsp;{{template "shared/user/namelink" .DBBranch.Pusher}}{{end}}</p>
+ {{end}}
+ </td>
+ <td class="two wide ui">
+ {{if and (not .DBBranch.IsDeleted) $.DefaultBranchBranch}}
+ <div class="commit-divergence">
+ <div class="bar-group">
+ <div class="count count-behind">{{.CommitsBehind}}</div>
+ {{/* old code bears 0/0.0 = NaN output, so it might output invalid "width: NaNpx", it just works and doesn't cause any problem. */}}
+ <div class="bar bar-behind" style="width: {{Eval 100 "*" .CommitsBehind "/" "(" .CommitsBehind "+" .CommitsAhead "+" 0.0 ")"}}%"></div>
+ </div>
+ <div class="bar-group">
+ <div class="count count-ahead">{{.CommitsAhead}}</div>
+ <div class="bar bar-ahead" style="width: {{Eval 100 "*" .CommitsAhead "/" "(" .CommitsBehind "+" .CommitsAhead "+" 0.0 ")"}}%"></div>
+ </div>
+ </div>
+ {{end}}
+ </td>
+ <td class="two wide right aligned">
+ {{if not .LatestPullRequest}}
+ {{if .IsIncluded}}
+ <span class="ui orange large label" data-tooltip-content="{{ctx.Locale.Tr "repo.branch.included_desc"}}">
+ {{svg "octicon-git-pull-request"}} {{ctx.Locale.Tr "repo.branch.included"}}
+ </span>
+ {{else if and (not .DBBranch.IsDeleted) $.AllowsPulls (gt .CommitsAhead 0)}}
+ <a href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}...{{if ne $.Repository.Owner.Name $.Owner.Name}}{{PathEscape $.Owner.Name}}:{{end}}{{PathEscapeSegments .DBBranch.Name}}">
+ <button id="new-pull-request" class="ui compact basic button tw-mr-0">{{if $.CanPull}}{{ctx.Locale.Tr "repo.pulls.compare_changes"}}{{else}}{{ctx.Locale.Tr "action.compare_branch"}}{{end}}</button>
+ </a>
+ {{end}}
+ {{else if and .LatestPullRequest.HasMerged .MergeMovedOn}}
+ {{if and (not .DBBranch.IsDeleted) $.AllowsPulls (gt .CommitsAhead 0)}}
+ <a href="{{$.RepoLink}}/compare/{{PathEscapeSegments $.DefaultBranchBranch.DBBranch.Name}}...{{if ne $.Repository.Owner.Name $.Owner.Name}}{{PathEscape $.Owner.Name}}:{{end}}{{PathEscapeSegments .DBBranch.Name}}">
+ <button id="new-pull-request" class="ui compact basic button tw-mr-0">{{if $.CanPull}}{{ctx.Locale.Tr "repo.pulls.compare_changes"}}{{else}}{{ctx.Locale.Tr "action.compare_branch"}}{{end}}</button>
+ </a>
+ {{end}}
+ {{else}}
+ <a href="{{.LatestPullRequest.Issue.Link}}" class="tw-align-middle ref-issue">{{if not .LatestPullRequest.IsSameRepo}}{{.LatestPullRequest.BaseRepo.FullName}}{{end}}#{{.LatestPullRequest.Issue.Index}}</a>
+ {{if .LatestPullRequest.HasMerged}}
+ <a href="{{.LatestPullRequest.Issue.Link}}" class="ui purple large label">{{svg "octicon-git-merge" 16 "tw-mr-1"}}{{ctx.Locale.Tr "repo.pulls.merged"}}</a>
+ {{else if .LatestPullRequest.Issue.IsClosed}}
+ <a href="{{.LatestPullRequest.Issue.Link}}" class="ui red large label">{{svg "octicon-git-pull-request-closed" 16 "tw-mr-1"}}{{ctx.Locale.Tr "repo.issues.closed_title"}}</a>
+ {{else if .LatestPullRequest.IsWorkInProgress ctx}}
+ <a href="{{.LatestPullRequest.Issue.Link}}" class="ui grey large label">{{svg "octicon-git-pull-request-draft" 16 "tw-mr-1"}}{{ctx.Locale.Tr "repo.issues.draft_title"}}</a>
+ {{else}}
+ <a href="{{.LatestPullRequest.Issue.Link}}" class="ui green large label">{{svg "octicon-git-pull-request" 16 "tw-mr-1"}}{{ctx.Locale.Tr "repo.issues.open_title"}}</a>
+ {{end}}
+ {{end}}
+ </td>
+ <td class="three wide right aligned overflow-visible">
+ {{if and $.IsWriter (not $.Repository.IsArchived) (not .DBBranch.IsDeleted)}}
+ <button class="btn interact-bg tw-p-2 show-modal show-create-branch-modal"
+ data-branch-from="{{.DBBranch.Name}}"
+ data-branch-from-urlcomponent="{{PathEscapeSegments .DBBranch.Name}}"
+ data-tooltip-content="{{ctx.Locale.Tr "repo.branch.new_branch_from" .DBBranch.Name}}"
+ data-modal="#create-branch-modal" data-name="{{.DBBranch.Name}}"
+ >
+ {{svg "octicon-git-branch"}}
+ </button>
+ {{end}}
+ {{if $.EnableFeed}}
+ <a role="button" class="btn interact-bg tw-p-2" href="{{$.FeedURL}}/rss/branch/{{PathEscapeSegments .DBBranch.Name}}" data-tooltip-content="{{ctx.Locale.Tr "rss_feed"}}">{{svg "octicon-rss"}}</a>
+ {{end}}
+ {{if and (not .DBBranch.IsDeleted) (not $.DisableDownloadSourceArchives)}}
+ <div class="ui dropdown btn interact-bg tw-p-2" data-tooltip-content="{{ctx.Locale.Tr "repo.branch.download" (.DBBranch.Name)}}">
+ {{svg "octicon-download"}}
+ <div class="menu">
+ <a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments .DBBranch.Name}}.zip" rel="nofollow">{{svg "octicon-file-zip"}}&nbsp;ZIP</a>
+ <a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments .DBBranch.Name}}.tar.gz" rel="nofollow">{{svg "octicon-file-zip"}}&nbsp;TAR.GZ</a>
+ </div>
+ </div>
+ {{end}}
+ {{if and $.IsWriter (not $.Repository.IsArchived) (not .DBBranch.IsDeleted) (not $.IsMirror)}}
+ <button class="btn interact-bg tw-p-2 show-modal show-rename-branch-modal"
+ data-is-default-branch="false"
+ data-old-branch-name="{{.DBBranch.Name}}"
+ data-modal="#rename-branch-modal"
+ data-tooltip-content="{{ctx.Locale.Tr "repo.branch.rename" (.DBBranch.Name)}}"
+ >
+ {{svg "octicon-pencil"}}
+ </button>
+ {{end}}
+ {{if and $.IsWriter (not $.IsMirror) (not $.Repository.IsArchived) (not .IsProtected)}}
+ {{if .DBBranch.IsDeleted}}
+ <button class="btn interact-bg tw-p-2 link-action restore-branch-button" data-url="{{$.Link}}/restore?branch_id={{.DBBranch.ID}}&name={{.DBBranch.Name}}&page={{$.Page.Paginater.Current}}" data-tooltip-content="{{ctx.Locale.Tr "repo.branch.restore" (.DBBranch.Name)}}">
+ <span class="text blue">
+ {{svg "octicon-reply"}}
+ </span>
+ </button>
+ {{else}}
+ <button class="btn interact-bg tw-p-2 delete-button delete-branch-button" data-url="{{$.Link}}/delete?name={{.DBBranch.Name}}&page={{$.Page.Paginater.Current}}" data-tooltip-content="{{ctx.Locale.Tr "repo.branch.delete" (.DBBranch.Name)}}" data-name="{{.DBBranch.Name}}">
+ {{svg "octicon-trash"}}
+ </button>
+ {{end}}
+ {{end}}
+ </td>
+ </tr>
+ {{end}}
+ </tbody>
+ </table>
+ </div>
+ {{template "base/paginate" .}}
+ </div>
+</div>
+
+<div class="ui g-modal-confirm delete modal">
+ <div class="header">
+ {{svg "octicon-trash"}}
+ {{ctx.Locale.Tr "repo.branch.delete_html"}} <span class="name"></span>
+ </div>
+ <div class="content">
+ <p>{{ctx.Locale.Tr "repo.branch.delete_desc"}}</p>
+ </div>
+ {{template "base/modal_actions_confirm" .}}
+</div>
+
+<div class="ui mini modal" id="create-branch-modal">
+ <div class="header">
+ {{ctx.Locale.Tr "repo.branch.new_branch"}}
+ </div>
+
+ <form class="ui form" id="create-branch-form" action="" data-base-action="{{.Link}}/_new/branch/" method="post">
+ <div class="content">
+ {{.CsrfTokenHtml}}
+ <div class="field">
+ {{ctx.Locale.Tr "repo.branch.create_new_branch"}}
+ <span id="modal-create-branch-from-span"></span>
+ </div>
+ <div class="required field">
+ <label for="new_branch_name">{{ctx.Locale.Tr "repo.branch.name"}}</label>
+ <input id="new_branch_name" name="new_branch_name" required>
+ </div>
+ </div>
+ {{template "base/modal_actions_confirm" (dict "ModalButtonTypes" "confirm")}}
+ </form>
+</div>
+
+<div class="ui mini modal" id="rename-branch-modal">
+ <div class="header">
+ {{ctx.Locale.Tr "repo.settings.rename_branch"}}
+ </div>
+ <form class="ui form" action="{{$.Repository.Link}}/settings/rename_branch" method="post">
+ <div class="content">
+ {{.CsrfTokenHtml}}
+ <div class="field default-branch-warning">
+ <span class="text red">{{ctx.Locale.Tr "repo.branch.warning_rename_default_branch"}}</span>
+ </div>
+ <div class="field">
+ <span class="text" data-rename-branch-to="{{ctx.Locale.Tr "repo.branch.rename_branch_to"}}"></span>
+ </div>
+ <input name="from" type="hidden" required>
+ <div class="required field">
+ <input name="to" required>
+ </div>
+ </div>
+ {{template "base/modal_actions_confirm" (dict "ModalButtonTypes" "confirm")}}
+ </form>
+</div>
+{{template "base/footer" .}}
diff --git a/templates/repo/branch_dropdown.tmpl b/templates/repo/branch_dropdown.tmpl
new file mode 100644
index 0000000..dcb1792
--- /dev/null
+++ b/templates/repo/branch_dropdown.tmpl
@@ -0,0 +1,89 @@
+{{/* Attributes:
+* root
+* ContainerClasses
+* (TODO: search "branch_dropdown" in the template directory)
+*/}}
+{{$defaultSelectedRefName := $.root.BranchName}}
+{{if and .root.IsViewTag (not .noTag)}}
+ {{$defaultSelectedRefName = .root.TagName}}
+{{end}}
+{{if eq $defaultSelectedRefName ""}}
+ {{$defaultSelectedRefName = $.root.Repository.DefaultBranch}}
+{{end}}
+
+{{$type := ""}}
+{{if and .root.IsViewTag (not .noTag)}}
+ {{$type = "tag"}}
+{{else if .root.IsViewBranch}}
+ {{$type = "branch"}}
+{{else}}
+ {{$type = "tree"}}
+{{end}}
+
+{{$showBranchesInDropdown := not .root.HideBranchesInDropdown}}
+
+<script type="module">
+ const data = {
+ 'textReleaseCompare': {{ctx.Locale.Tr "repo.release.compare"}},
+ 'textCreateTag': {{ctx.Locale.Tr "repo.tag.create_tag"}},
+ 'textCreateBranch': {{ctx.Locale.Tr "repo.branch.create_branch"}},
+ 'textCreateBranchFrom': {{ctx.Locale.Tr "repo.branch.create_from"}},
+ 'textBranches': {{ctx.Locale.Tr "repo.branches"}},
+ 'textTags': {{ctx.Locale.Tr "repo.tags"}},
+ 'textDefaultBranchLabel': {{ctx.Locale.Tr "repo.default_branch_label"}},
+
+ 'mode': '{{if or .root.IsViewTag .isTag}}tags{{else}}branches{{end}}',
+ 'showBranchesInDropdown': {{$showBranchesInDropdown}},
+ 'searchFieldPlaceholder': '{{if $.noTag}}{{ctx.Locale.Tr "repo.pulls.filter_branch"}}{{else if $showBranchesInDropdown}}{{ctx.Locale.Tr "repo.filter_branch_and_tag"}}{{else}}{{ctx.Locale.Tr "repo.find_tag"}}{{end}}...',
+ 'branchForm': {{$.branchForm}},
+ 'disableCreateBranch': {{if .disableCreateBranch}}{{.disableCreateBranch}}{{else}}{{not .root.CanCreateBranch}}{{end}},
+ 'setAction': {{.setAction}},
+ 'submitForm': {{.submitForm}},
+ 'viewType': {{$type}},
+ 'refName': {{if and .root.IsViewTag (not .noTag)}}{{.root.TagName}}{{else if .root.IsViewBranch}}{{.root.BranchName}}{{else}}{{ShortSha .root.CommitID}}{{end}},
+ 'commitIdShort': {{ShortSha .root.CommitID}},
+ 'tagName': {{.root.TagName}},
+ 'branchName': {{.root.BranchName}},
+ 'noTag': {{.noTag}},
+ 'defaultSelectedRefName': {{$defaultSelectedRefName}},
+ 'repoDefaultBranch': {{.root.Repository.DefaultBranch}},
+ 'enableFeed': {{.root.EnableFeed}},
+ 'rssURLPrefix': '{{$.root.RepoLink}}/rss/branch/',
+ 'branchURLPrefix': '{{if .branchURLPrefix}}{{.branchURLPrefix}}{{else}}{{$.root.RepoLink}}/{{if $.root.PageIsCommits}}commits{{else}}src{{end}}/branch/{{end}}',
+ 'branchURLSuffix': '{{if .branchURLSuffix}}{{.branchURLSuffix}}{{else}}{{if $.root.TreePath}}/{{PathEscapeSegments $.root.TreePath}}{{end}}{{end}}',
+ 'tagURLPrefix': '{{if .tagURLPrefix}}{{.tagURLPrefix}}{{else if .release}}{{$.root.RepoLink}}/compare/{{else}}{{$.root.RepoLink}}/{{if $.root.PageIsCommits}}commits{{else}}src{{end}}/tag/{{end}}',
+ 'tagURLSuffix': '{{if .tagURLSuffix}}{{.tagURLSuffix}}{{else if .release}}...{{if .release.IsDraft}}{{PathEscapeSegments .release.Target}}{{else}}{{if .release.TagName}}{{PathEscapeSegments .release.TagName}}{{else}}{{PathEscapeSegments .release.Sha1}}{{end}}{{end}}{{else}}{{if $.root.TreePath}}/{{PathEscapeSegments $.root.TreePath}}{{end}}{{end}}',
+ 'repoLink': {{.root.RepoLink}},
+ 'treePath': {{.root.TreePath}},
+ 'branchNameSubURL': {{.root.BranchNameSubURL}},
+ 'noResults': {{ctx.Locale.Tr "repo.pulls.no_results"}},
+ };
+ {{if .release}}
+ data.release = {
+ 'tagName': {{.release.TagName}},
+ };
+ {{end}}
+ window.config.pageData.branchDropdownDataList = window.config.pageData.branchDropdownDataList || [];
+ window.config.pageData.branchDropdownDataList.push(data);
+</script>
+
+<div class="js-branch-tag-selector {{if .ContainerClasses}}{{.ContainerClasses}}{{end}}">
+ {{/* show dummy elements before Vue componment is mounted, this code must match the code in BranchTagSelector.vue */}}
+ <div class="ui dropdown custom">
+ <button class="branch-dropdown-button gt-ellipsis ui basic small compact button tw-flex tw-m-0">
+ <span class="text tw-flex tw-items-center tw-mr-1 gt-ellipsis">
+ {{if .release}}
+ {{ctx.Locale.Tr "repo.release.compare"}}
+ {{else}}
+ {{if eq $type "tag"}}
+ {{svg "octicon-tag"}}
+ {{else}}
+ {{svg "octicon-git-branch"}}
+ {{end}}
+ <strong ref="dropdownRefName" class="tw-ml-2 tw-inline-block gt-ellipsis">{{if and .root.IsViewTag (not .noTag)}}{{.root.TagName}}{{else if .root.IsViewBranch}}{{.root.BranchName}}{{else}}{{ShortSha .root.CommitID}}{{end}}</strong>
+ {{end}}
+ </span>
+ {{svg "octicon-triangle-down" 14 "dropdown icon"}}
+ </button>
+ </div>
+</div>