code.gitea.io/gitea@v1.22.3/templates/repo/diff/compare.tmpl (about) 1 {{template "base/head" .}} 2 <div role="main" aria-label="{{.Title}}" class="page-content repository diff {{if .PageIsComparePull}}compare pull{{end}}"> 3 {{template "repo/header" .}} 4 {{$showDiffBox := false}} 5 <div class="ui container fluid padded"> 6 <h2 class="ui header"> 7 {{if and $.PageIsComparePull $.IsSigned (not .Repository.IsArchived)}} 8 {{ctx.Locale.Tr "repo.pulls.compare_changes"}} 9 <div class="sub header">{{ctx.Locale.Tr "repo.pulls.compare_changes_desc"}}</div> 10 {{else}} 11 {{ctx.Locale.Tr "action.compare_commits_general"}} 12 {{end}} 13 </h2> 14 {{$BaseCompareName := $.BaseName -}} 15 {{- $HeadCompareName := $.HeadRepo.OwnerName -}} 16 {{- if and (eq $.BaseName $.HeadRepo.OwnerName) (ne $.Repository.Name $.HeadRepo.Name) -}} 17 {{- $HeadCompareName = printf "%s/%s" $.HeadRepo.OwnerName $.HeadRepo.Name -}} 18 {{- end -}} 19 {{- $OwnForkCompareName := "" -}} 20 {{- if .OwnForkRepo -}} 21 {{- $OwnForkCompareName = .OwnForkRepo.OwnerName -}} 22 {{- end -}} 23 {{- $RootRepoCompareName := "" -}} 24 {{- if .RootRepo -}} 25 {{- $RootRepoCompareName = .RootRepo.OwnerName -}} 26 {{- if eq $.HeadRepo.OwnerName .RootRepo.OwnerName -}} 27 {{- $HeadCompareName = printf "%s/%s" $.HeadRepo.OwnerName $.HeadRepo.Name -}} 28 {{- end -}} 29 {{- end -}} 30 <div class="ui segment choose branch"> 31 <a class="tw-mr-2" href="{{$.HeadRepo.Link}}/compare/{{PathEscapeSegments $.HeadBranch}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.BaseName}}/{{PathEscape $.Repository.Name}}:{{end}}{{PathEscapeSegments $.BaseBranch}}" title="{{ctx.Locale.Tr "repo.pulls.switch_head_and_base"}}">{{svg "octicon-git-compare"}}</a> 32 <div class="ui floating filter dropdown" data-no-results="{{ctx.Locale.Tr "no_results_found"}}"> 33 <div class="ui basic small button"> 34 <span class="text">{{if $.PageIsComparePull}}{{ctx.Locale.Tr "repo.pulls.compare_base"}}{{else}}{{ctx.Locale.Tr "repo.compare.compare_base"}}{{end}}: {{$BaseCompareName}}:{{$.BaseBranch}}</span> 35 {{svg "octicon-triangle-down" 14 "dropdown icon"}} 36 </div> 37 <div class="menu"> 38 <div class="ui icon search input"> 39 <i class="icon">{{svg "octicon-filter" 16}}</i> 40 <input name="search" placeholder="{{ctx.Locale.Tr "repo.filter_branch_and_tag"}}..."> 41 </div> 42 <div class="header"> 43 <div class="ui grid"> 44 <div class="two column row"> 45 <a class="reference column" href="#" data-target=".base-branch-list"> 46 <span class="text black"> 47 {{svg "octicon-git-branch" 16 "tw-mr-1"}}{{ctx.Locale.Tr "repo.branches"}} 48 </span> 49 </a> 50 <a class="reference column" href="#" data-target=".base-tag-list"> 51 <span class="text black"> 52 {{svg "octicon-tag" 16 "tw-mr-1"}}{{ctx.Locale.Tr "repo.tags"}} 53 </span> 54 </a> 55 </div> 56 </div> 57 </div> 58 <div class="scrolling menu reference-list-menu base-branch-list"> 59 {{range .Branches}} 60 <div class="item {{if eq $.BaseBranch .}}selected{{end}}" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments $.HeadBranch}}">{{$BaseCompareName}}:{{.}}</div> 61 {{end}} 62 {{if not .PullRequestCtx.SameRepo}} 63 {{range .HeadBranches}} 64 <div class="item" data-url="{{$.HeadRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$HeadCompareName}}:{{.}}</div> 65 {{end}} 66 {{end}} 67 {{if .OwnForkRepo}} 68 {{range .OwnForkRepoBranches}} 69 <div class="item" data-url="{{$.OwnForkRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$OwnForkCompareName}}:{{.}}</div> 70 {{end}} 71 {{end}} 72 {{if and .RootRepo (.RootRepo.AllowsPulls ctx)}} 73 {{range .RootRepoBranches}} 74 <div class="item" data-url="{{$.RootRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$RootRepoCompareName}}:{{.}}</div> 75 {{end}} 76 {{end}} 77 </div> 78 <div class="scrolling menu reference-list-menu base-tag-list tw-hidden"> 79 {{range .Tags}} 80 <div class="item {{if eq $.BaseBranch .}}selected{{end}}" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments $.HeadBranch}}">{{$BaseCompareName}}:{{.}}</div> 81 {{end}} 82 {{if not .PullRequestCtx.SameRepo}} 83 {{range .HeadTags}} 84 <div class="item" data-url="{{$.HeadRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$HeadCompareName}}:{{.}}</div> 85 {{end}} 86 {{end}} 87 {{if .OwnForkRepo}} 88 {{range .OwnForkRepoTags}} 89 <div class="item" data-url="{{$.OwnForkRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$OwnForkCompareName}}:{{.}}</div> 90 {{end}} 91 {{end}} 92 {{if .RootRepo}} 93 {{range .RootRepoTags}} 94 <div class="item" data-url="{{$.RootRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$RootRepoCompareName}}:{{.}}</div> 95 {{end}} 96 {{end}} 97 </div> 98 </div> 99 </div> 100 <a href="{{.RepoLink}}/compare/{{PathEscapeSegments .BaseBranch}}{{.OtherCompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments $.HeadBranch}}" title="{{ctx.Locale.Tr "repo.pulls.switch_comparison_type"}}">{{svg "octicon-arrow-left" 16}}<div class="compare-separator">{{.CompareSeparator}}</div></a> 101 <div class="ui floating filter dropdown"> 102 <div class="ui basic small button"> 103 <span class="text">{{if $.PageIsComparePull}}{{ctx.Locale.Tr "repo.pulls.compare_compare"}}{{else}}{{ctx.Locale.Tr "repo.compare.compare_head"}}{{end}}: {{$HeadCompareName}}:{{$.HeadBranch}}</span> 104 {{svg "octicon-triangle-down" 14 "dropdown icon"}} 105 </div> 106 <div class="menu"> 107 <div class="ui icon search input"> 108 <i class="icon">{{svg "octicon-filter" 16}}</i> 109 <input name="search" placeholder="{{ctx.Locale.Tr "repo.filter_branch_and_tag"}}..."> 110 </div> 111 <div class="header"> 112 <div class="ui grid"> 113 <div class="two column row"> 114 <a class="reference column" href="#" data-target=".head-branch-list"> 115 <span class="text black"> 116 {{svg "octicon-git-branch" 16 "tw-mr-1"}}{{ctx.Locale.Tr "repo.branches"}} 117 </span> 118 </a> 119 <a class="reference column" href="#" data-target=".head-tag-list"> 120 <span class="text black"> 121 {{svg "octicon-tag" 16 "tw-mr-1"}}{{ctx.Locale.Tr "repo.tags"}} 122 </span> 123 </a> 124 </div> 125 </div> 126 </div> 127 <div class="scrolling menu reference-list-menu head-branch-list"> 128 {{range .HeadBranches}} 129 <div class="{{if eq $.HeadBranch .}}selected{{end}} item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments .}}">{{$HeadCompareName}}:{{.}}</div> 130 {{end}} 131 {{if not .PullRequestCtx.SameRepo}} 132 {{range .Branches}} 133 <div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.BaseName}}/{{PathEscape $.Repository.Name}}:{{PathEscapeSegments .}}">{{$BaseCompareName}}:{{.}}</div> 134 {{end}} 135 {{end}} 136 {{if .OwnForkRepo}} 137 {{range .OwnForkRepoBranches}} 138 <div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.OwnForkRepo.OwnerName}}/{{PathEscape $.OwnForkRepo.Name}}:{{PathEscapeSegments .}}">{{$OwnForkCompareName}}:{{.}}</div> 139 {{end}} 140 {{end}} 141 {{if .RootRepo}} 142 {{range .RootRepoBranches}} 143 <div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.RootRepo.OwnerName}}/{{PathEscape $.RootRepo.Name}}:{{PathEscapeSegments .}}">{{$RootRepoCompareName}}:{{.}}</div> 144 {{end}} 145 {{end}} 146 </div> 147 <div class="scrolling menu reference-list-menu head-tag-list tw-hidden"> 148 {{range .HeadTags}} 149 <div class="{{if eq $.HeadBranch .}}selected{{end}} item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments .}}">{{$HeadCompareName}}:{{.}}</div> 150 {{end}} 151 {{if not .PullRequestCtx.SameRepo}} 152 {{range .Tags}} 153 <div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.BaseName}}/{{PathEscape $.Repository.Name}}:{{PathEscapeSegments .}}">{{$BaseCompareName}}:{{.}}</div> 154 {{end}} 155 {{end}} 156 {{if .OwnForkRepo}} 157 {{range .OwnForkRepoTags}} 158 <div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.OwnForkRepo.OwnerName}}/{{PathEscape $.OwnForkRepo.Name}}:{{PathEscapeSegments .}}">{{$OwnForkCompareName}}:{{.}}</div> 159 {{end}} 160 {{end}} 161 {{if .RootRepo}} 162 {{range .RootRepoTags}} 163 <div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.RootRepo.OwnerName}}/{{PathEscape $.RootRepo.Name}}:{{PathEscapeSegments .}}">{{$RootRepoCompareName}}:{{.}}</div> 164 {{end}} 165 {{end}} 166 </div> 167 </div> 168 </div> 169 </div> 170 171 {{if .IsNothingToCompare}} 172 {{if and $.IsSigned $.AllowEmptyPr (not .Repository.IsArchived) .PageIsComparePull}} 173 <div class="ui segment">{{ctx.Locale.Tr "repo.pulls.nothing_to_compare_and_allow_empty_pr"}}</div> 174 <div class="ui info message show-form-container {{if .Flash}}tw-hidden{{end}}"> 175 <button class="ui button primary show-form">{{ctx.Locale.Tr "repo.pulls.new"}}</button> 176 </div> 177 <div class="pullrequest-form {{if not .Flash}}tw-hidden{{end}}"> 178 {{template "repo/issue/new_form" .}} 179 </div> 180 {{else if and .HeadIsBranch .BaseIsBranch}} 181 <div class="ui segment">{{ctx.Locale.Tr "repo.pulls.nothing_to_compare"}}</div> 182 {{else}} 183 <div class="ui segment">{{ctx.Locale.Tr "repo.pulls.nothing_to_compare_have_tag"}}</div> 184 {{end}} 185 {{else if and .PageIsComparePull (gt .CommitCount 0)}} 186 {{if .HasPullRequest}} 187 <div class="ui segment flex-text-block tw-gap-4"> 188 {{template "shared/issueicon" .}} 189 <div class="issue-title tw-break-anywhere"> 190 {{RenderIssueTitle $.Context .PullRequest.Issue.Title ($.Repository.ComposeMetas ctx) | RenderCodeBlock}} 191 <span class="index">#{{.PullRequest.Issue.Index}}</span> 192 </div> 193 <a href="{{$.RepoLink}}/pulls/{{.PullRequest.Issue.Index}}" class="ui compact button primary"> 194 {{ctx.Locale.Tr "repo.pulls.view"}} 195 </a> 196 </div> 197 {{else}} 198 {{if and $.IsSigned (not .Repository.IsArchived)}} 199 <div class="ui info message show-form-container {{if .Flash}}tw-hidden{{end}}"> 200 <button class="ui button primary show-form">{{ctx.Locale.Tr "repo.pulls.new"}}</button> 201 </div> 202 {{else if .Repository.IsArchived}} 203 <div class="ui warning message tw-text-center"> 204 {{if .Repository.ArchivedUnix.IsZero}} 205 {{ctx.Locale.Tr "repo.archive.title"}} 206 {{else}} 207 {{ctx.Locale.Tr "repo.archive.title_date" (DateTime "long" .Repository.ArchivedUnix)}} 208 {{end}} 209 </div> 210 {{end}} 211 {{if $.IsSigned}} 212 <div class="pullrequest-form {{if not .Flash}}tw-hidden{{end}}"> 213 {{template "repo/issue/new_form" .}} 214 </div> 215 {{end}} 216 {{$showDiffBox = true}} 217 {{end}} 218 {{else if not .IsNothingToCompare}} 219 {{$showDiffBox = true}} 220 {{end}} 221 </div> 222 223 {{if $showDiffBox}} 224 <div class="ui container fluid padded"> 225 {{template "repo/commits_table" .}} 226 {{template "repo/diff/box" .}} 227 </div> 228 {{end}} 229 </div> 230 {{template "base/footer" .}}