2021-05-03 13:27:48 -04:00
{{ $ release : = .release }}
2022-02-09 20:28:55 +00:00
{{ $ defaultBranch : = $ .root .BranchName }} {{ if and .root .IsViewTag ( not .noTag ) }} {{ $ defaultBranch = .root .TagName }} {{ end }} {{ if eq $ defaultBranch "" }} {{ $ defaultBranch = $ .root .Repository .DefaultBranch }} {{ end }}
2022-08-08 01:15:11 +02:00
{{ $ type : = "" }} {{ if and .root .IsViewTag ( not .noTag ) }} {{ $ type = "tag" }} {{ else if .root .IsViewBranch }} {{ $ type = "branch" }} {{ else }} {{ $ type = "tree" }} {{ end }}
2021-05-03 13:27:48 -04:00
{{ $ showBranchesInDropdown : = not .root .HideBranchesInDropdown }}
2023-03-11 18:47:09 +08:00
<script type="module">
const data = {
'textReleaseCompare': {{ .root .locale .Tr "repo.release.compare" }} ,
'textCreateTag': {{ .root .locale .Tr "repo.tag.create_tag" }} ,
'textCreateBranch': {{ .root .locale .Tr "repo.branch.create_branch" }} ,
'textCreateBranchFrom': {{ .root .locale .Tr "repo.branch.create_from" }} ,
'textBranches': {{ .root .locale .Tr "repo.branches" }} ,
'textTags': {{ .root .locale .Tr "repo.tags" }} ,
'mode': ' {{ if or .root .IsViewTag .isTag }} tags {{ else }} branches {{ end }} ',
'showBranchesInDropdown': {{ $ showBranchesInDropdown }} ,
'searchFieldPlaceholder': ' {{ if $ .noTag }} {{ .root .locale .Tr "repo.pulls.filter_branch" }} {{ else if $ showBranchesInDropdown }} {{ .root .locale .Tr "repo.filter_branch_and_tag" }} {{ else }} {{ .root .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 }} ,
'branches': {{ .root .Branches }} ,
'tags': {{ .root .Tags }} ,
'defaultBranch': {{ $ defaultBranch }} ,
'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': {{ .root .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>
2022-10-19 07:39:55 +02:00
<div class="fitted item choose reference">
2023-03-11 18:47:09 +08:00
<div class="ui floating filter dropdown custom">
2023-02-13 17:59:59 +00:00
<button class="branch-dropdown-button gt-ellipsis ui basic small compact button gt-df" @click="menuVisible = !menuVisible" @keyup.enter="menuVisible = !menuVisible">
<span class="text gt-df gt-ac gt-mr-2">
2023-03-11 18:47:09 +08:00
{{ / * v-cloak is used to hide unnecessary elements before Vue componment is mounted * / }}
<span v-cloak v-if="release">$ { textReleaseCompare }</span>
<span :class=" { visible: isViewTag}" v-if="isViewTag" {{ if not ( eq $ type "tag" ) }} v-cloak {{ end }} > {{ svg "octicon-tag" }} </span>
<span :class=" { visible: isViewBranch}" v-if="isViewBranch" {{ if not ( eq $ type "branch" ) }} v-cloak {{ end }} > {{ svg "octicon-git-branch" }} </span>
<span :class=" { visible: isViewTree}" v-if="isViewTree" {{ if not ( eq $ type "tree" ) }} v-cloak {{ end }} > {{ svg "octicon-git-branch" }} </span>
<strong ref="dropdownRefName" class="gt-ml-3"> {{ if and .root .IsViewTag ( not .noTag ) }} {{ .root .TagName }} {{ else if .root .IsViewBranch }} {{ .root .BranchName }} {{ else }} {{ ShortSha .root .CommitID }} {{ end }} </strong>
2015-12-09 17:11:41 +11:00
</span>
2020-10-31 23:15:11 +01:00
{{ svg "octicon-triangle-down" 1 4 "dropdown icon" }}
2022-10-19 07:39:55 +02:00
</button>
2017-10-17 10:24:43 +03:00
<div class="menu transition" :class=" { visible: menuVisible}" v-if="menuVisible" v-cloak>
2015-12-09 17:11:41 +11:00
<div class="ui icon search input">
2023-02-13 17:59:59 +00:00
<i class="icon gt-df gt-ac gt-jc gt-m-0"> {{ svg "octicon-filter" 1 6 }} </i>
2023-03-11 18:47:09 +08:00
<input name="search" ref="searchField" autocomplete="off" v-model="searchTerm" @keydown="keydown($event)" :placeholder="searchFieldPlaceholder">
2015-12-09 17:11:41 +11:00
</div>
2023-03-11 18:47:09 +08:00
<template v-if="showBranchesInDropdown">
2021-05-03 13:27:48 -04:00
<div class="header branch-tag-choice">
<div class="ui grid">
<div class="two column row">
<a class="reference column" href="#" @click="createTag = false; mode = 'branches'; focusSearchField()">
2023-03-11 18:47:09 +08:00
<span class="text" :class=" { black: mode === 'branches'}">
{{ svg "octicon-git-branch" 1 6 "gt-mr-2" }} $ { textBranches }
2021-05-03 13:27:48 -04:00
</span>
</a>
2023-03-11 18:47:09 +08:00
<template v-if="!noTag">
2022-02-09 20:28:55 +00:00
<a class="reference column" href="#" @click="createTag = true; mode = 'tags'; focusSearchField()">
2023-03-11 18:47:09 +08:00
<span class="text" :class=" { black: mode === 'tags'}">
{{ svg "octicon-tag" 1 6 "gt-mr-2" }} $ { textTags }
2022-02-09 20:28:55 +00:00
</span>
</a>
2023-03-11 18:47:09 +08:00
</template>
2021-05-03 13:27:48 -04:00
</div>
2015-12-09 17:11:41 +11:00
</div>
</div>
2023-03-11 18:47:09 +08:00
</template>
2017-10-15 22:59:24 +03:00
<div class="scrolling menu" ref="scrollContainer">
2023-03-11 18:47:09 +08:00
<div v-for="(item, index) in filteredItems" :key="item.name" class="item" :class=" { selected: item.selected, active: active === index}" @click="selectItem(item)" :ref="'listItem' + index">$ { item.name }</div>
<div class="item" v-if="showCreateNewBranch" :class=" { active: active === filteredItems.length}" :ref="'listItem' + filteredItems.length">
2017-10-15 22:59:24 +03:00
<a href="#" @click="createNewBranch()">
2021-03-01 03:57:45 +08:00
<div v-show="createTag">
<i class="reference tags icon"></i>
2023-03-11 18:47:09 +08:00
<span v-html="textCreateTag.replace('%s', searchTerm)"></span>
2021-03-01 03:57:45 +08:00
</div>
<div v-show="!createTag">
2020-09-11 22:19:00 +02:00
{{ svg "octicon-git-branch" }}
2023-03-11 18:47:09 +08:00
<span v-html="textCreateBranch.replace('%s', searchTerm)"></span>
2017-10-15 22:59:24 +03:00
</div>
<div class="text small">
2023-03-11 18:47:09 +08:00
<span v-if="isViewBranch || release">$ { textCreateBranchFrom.replace('%s', branchName) }</span>
<span v-else-if="isViewTag">$ { textCreateBranchFrom.replace('%s', tagName) }</span>
<span v-else>$ { textCreateBranchFrom.replace('%s', commitIdShort) }</span>
2017-10-15 22:59:24 +03:00
</div>
</a>
2021-11-16 18:18:25 +00:00
<form ref="newBranchForm" action=" {{ .root .RepoLink }} /branches/_new/ {{ .root .BranchNameSubURL }} " method="post">
2023-03-11 18:47:09 +08:00
<input type="hidden" name="_csrf" :value="csrfToken">
2017-10-15 22:59:24 +03:00
<input type="hidden" name="new_branch_name" v-model="searchTerm">
2021-03-01 03:57:45 +08:00
<input type="hidden" name="create_tag" v-model="createTag">
2023-03-11 18:47:09 +08:00
<input type="hidden" name="current_path" v-model="treePath" v-if="treePath">
2017-10-15 22:59:24 +03:00
</form>
</div>
2015-12-09 17:11:41 +11:00
</div>
2017-10-15 22:59:24 +03:00
<div class="message" v-if="showNoResults">$ { noResults }</div>
2015-12-09 17:11:41 +11:00
</div>
</div>
</div>