mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-11-30 13:56:09 +01:00
d32af84a10
Close #22847 This PR: * introduce Gitea's own `showElem` and related functions * remove jQuery show/hide * remove .hide class * remove inline style=display:none From now on: do not use: * "[hidden]" attribute: it's too weak, can not be applied to an element with "display: flex" * ".hidden" class: it has been polluted by Fomantic UI in many cases * inline style="display: none": it's difficult to tweak * jQuery's show/hide/toggle: it can not show/hide elements with "display: xxx !important" only use: * this ".gt-hidden" class * showElem/hideElem/toggleElem functions in "utils/dom.js" cc: @silverwind , this is the all-in-one PR
107 lines
6.5 KiB
Handlebars
107 lines
6.5 KiB
Handlebars
{{$release := .release}}
|
|
{{$defaultBranch := $.root.BranchName}}{{if and .root.IsViewTag (not .noTag)}}{{$defaultBranch = .root.TagName}}{{end}}{{if eq $defaultBranch ""}}{{$defaultBranch = $.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}}
|
|
<div class="fitted item choose reference">
|
|
<div class="ui floating filter dropdown custom"
|
|
data-branch-form="{{if $.branchForm}}{{$.branchForm}}{{end}}"
|
|
data-can-create-branch="{{if .canCreateBranch}}{{.canCreateBranch}}{{else}}{{.root.CanCreateBranch}}{{end}}"
|
|
data-no-results="{{.root.locale.Tr "repo.pulls.no_results"}}"
|
|
data-set-action="{{.setAction}}" data-submit-form="{{.submitForm}}"
|
|
data-view-type="{{$type}}"
|
|
data-ref-name="{{if and .root.IsViewTag (not .noTag)}}{{.root.TagName}}{{else if .root.IsViewBranch}}{{.root.BranchName}}{{else}}{{ShortSha .root.CommitID}}{{end}}"
|
|
data-branch-url-prefix="{{if .branchURLPrefix}}{{.branchURLPrefix}}{{else}}{{$.root.RepoLink}}/{{if $.root.PageIsCommits}}commits{{else}}src{{end}}/branch/{{end}}"
|
|
data-branch-url-suffix="{{if .branchURLSuffix}}{{.branchURLSuffix}}{{else}}{{if $.root.TreePath}}/{{PathEscapeSegments $.root.TreePath}}{{end}}{{end}}"
|
|
data-tag-url-prefix="{{if .tagURLPrefix}}{{.tagURLPrefix}}{{else if $release}}{{$.root.RepoLink}}/compare/{{else}}{{$.root.RepoLink}}/{{if $.root.PageIsCommits}}commits{{else}}src{{end}}/tag/{{end}}"
|
|
data-tag-url-suffix="{{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}}">
|
|
<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">
|
|
{{if $release}}
|
|
{{.root.locale.Tr "repo.release.compare"}}
|
|
{{else}}
|
|
<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>
|
|
{{end}}
|
|
</span>
|
|
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
|
|
</button>
|
|
<div class="data gt-hidden" data-mode="{{if or .root.IsViewTag .isTag}}tags{{else}}branches{{end}}">
|
|
{{if $showBranchesInDropdown}}
|
|
{{range .root.Branches}}
|
|
<div class="item branch {{if eq $defaultBranch .}}selected{{end}}" data-url="{{PathEscapeSegments .}}">{{.}}</div>
|
|
{{end}}
|
|
{{end}}
|
|
{{if (not .noTag)}}
|
|
{{range .root.Tags}}
|
|
{{if $release}}
|
|
<div class="item tag {{if eq $release.TagName .}}selected{{end}}" data-url="{{PathEscapeSegments .}}">{{.}}</div>
|
|
{{else}}
|
|
<div class="item tag {{if eq $defaultBranch .}}selected{{end}}" data-url="{{PathEscapeSegments .}}">{{.}}</div>
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
</div>
|
|
<div class="menu transition" :class="{visible: menuVisible}" v-if="menuVisible" v-cloak>
|
|
<div class="ui icon search input">
|
|
<i class="icon gt-df gt-ac gt-jc gt-m-0">{{svg "octicon-filter" 16}}</i>
|
|
<input name="search" ref="searchField" autocomplete="off" v-model="searchTerm" @keydown="keydown($event)" placeholder="{{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}}...">
|
|
</div>
|
|
{{if $showBranchesInDropdown}}
|
|
<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()">
|
|
<span class="text" :class="{black: mode == 'branches'}">
|
|
{{svg "octicon-git-branch" 16 "gt-mr-2"}}{{.root.locale.Tr "repo.branches"}}
|
|
</span>
|
|
</a>
|
|
{{if not .noTag}}
|
|
<a class="reference column" href="#" @click="createTag = true; mode = 'tags'; focusSearchField()">
|
|
<span class="text" :class="{black: mode == 'tags'}">
|
|
{{svg "octicon-tag" 16 "gt-mr-2"}}{{.root.locale.Tr "repo.tags"}}
|
|
</span>
|
|
</a>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
<div class="scrolling menu" ref="scrollContainer">
|
|
<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">
|
|
<a href="#" @click="createNewBranch()">
|
|
<div v-show="createTag">
|
|
<i class="reference tags icon"></i>
|
|
{{.root.locale.Tr "repo.tag.create_tag" `${ searchTerm }` | Safe}}
|
|
</div>
|
|
<div v-show="!createTag">
|
|
{{svg "octicon-git-branch"}}
|
|
{{.root.locale.Tr "repo.branch.create_branch" `${ searchTerm }` | Safe}}
|
|
</div>
|
|
<div class="text small">
|
|
{{if or .root.IsViewBranch $release}}
|
|
{{.root.locale.Tr "repo.branch.create_from" .root.BranchName}}
|
|
{{else if .root.IsViewTag}}
|
|
{{.root.locale.Tr "repo.branch.create_from" .root.TagName}}
|
|
{{else}}
|
|
{{.root.locale.Tr "repo.branch.create_from" (ShortSha .root.CommitID)}}
|
|
{{end}}
|
|
</div>
|
|
</a>
|
|
<form ref="newBranchForm" action="{{.root.RepoLink}}/branches/_new/{{.root.BranchNameSubURL}}" method="post">
|
|
{{.root.CsrfTokenHtml}}
|
|
<input type="hidden" name="new_branch_name" v-model="searchTerm">
|
|
<input type="hidden" name="create_tag" v-model="createTag">
|
|
{{if $.root.TreePath}}
|
|
<input type="hidden" name="current_path" value="{{.root.TreePath}}">
|
|
{{end}}
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="message" v-if="showNoResults">${ noResults }</div>
|
|
</div>
|
|
</div>
|
|
</div>
|