You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

compare.tmpl 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  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. <div class="ui container {{if .IsSplitStyle}}fluid padded{{end}}">
  5. <h2 class="ui header">
  6. {{if and $.PageIsComparePull $.IsSigned (not .Repository.IsArchived)}}
  7. {{.locale.Tr "repo.pulls.compare_changes"}}
  8. <div class="sub header">{{.locale.Tr "repo.pulls.compare_changes_desc"}}</div>
  9. {{else}}
  10. {{.locale.Tr "action.compare_commits_general"}}
  11. {{end}}
  12. </h2>
  13. {{if .Flash.WarningMsg}}
  14. {{/*
  15. There's already an importing of alert.tmpl in new_form.tmpl,
  16. but only the negative message will be displayed within forms for some reasons, see semantic.css:10659.
  17. To avoid repeated negative messages, the importing here if for .Flash.WarningMsg only.
  18. */}}
  19. {{template "base/alert" .}}
  20. {{end}}
  21. {{$BaseCompareName := $.BaseName -}}
  22. {{- $HeadCompareName := $.HeadRepo.OwnerName -}}
  23. {{- if and (eq $.BaseName $.HeadRepo.OwnerName) (ne $.Repository.Name $.HeadRepo.Name) -}}
  24. {{- $HeadCompareName = printf "%s/%s" $.HeadRepo.OwnerName $.HeadRepo.Name -}}
  25. {{- end -}}
  26. {{- $OwnForkCompareName := "" -}}
  27. {{- if .OwnForkRepo -}}
  28. {{- $OwnForkCompareName = .OwnForkRepo.OwnerName -}}
  29. {{- end -}}
  30. {{- $RootRepoCompareName := "" -}}
  31. {{- if .RootRepo -}}
  32. {{- $RootRepoCompareName = .RootRepo.OwnerName -}}
  33. {{- if eq $.HeadRepo.OwnerName .RootRepo.OwnerName -}}
  34. {{- $HeadCompareName = printf "%s/%s" $.HeadRepo.OwnerName $.HeadRepo.Name -}}
  35. {{- end -}}
  36. {{- if .OwnForkRepo -}}
  37. {{- if eq $.OwnForkRepo.OwnerName .RootRepo.OwnerName -}}
  38. {{- $OwnForkRepoCompareName = printf "%s/%s" $.OwnForkRepo.OwnerName $.OwnForkRepo.Name -}}
  39. {{- end -}}
  40. {{- end -}}
  41. {{- end -}}
  42. <div class="ui segment choose branch">
  43. <a href="{{$.HeadRepo.Link}}/compare/{{PathEscapeSegments $.HeadBranch}}{{$.CompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.BaseName}}/{{PathEscape $.Repository.Name}}:{{end}}{{PathEscapeSegments $.BaseBranch}}" title="{{.locale.Tr "repo.pulls.switch_head_and_base"}}">{{svg "octicon-git-compare"}}</a>
  44. <div class="ui floating filter dropdown" data-no-results="{{.locale.Tr "repo.pulls.no_results"}}">
  45. <div class="ui basic small button">
  46. <span class="text">{{if $.PageIsComparePull}}{{.locale.Tr "repo.pulls.compare_base"}}{{else}}{{.locale.Tr "repo.compare.compare_base"}}{{end}}: {{$BaseCompareName}}:{{$.BaseBranch}}</span>
  47. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  48. </div>
  49. <div class="menu">
  50. <div class="ui icon search input">
  51. <i class="icon df ac jc m-0">{{svg "octicon-filter" 16}}</i>
  52. <input name="search" placeholder="{{.locale.Tr "repo.filter_branch_and_tag"}}...">
  53. </div>
  54. <div class="header">
  55. <div class="ui grid">
  56. <div class="two column row">
  57. <a class="reference column" href="#" data-target=".base-branch-list">
  58. <span class="text black">
  59. {{svg "octicon-git-branch" 16 "mr-2"}}{{.locale.Tr "repo.branches"}}
  60. </span>
  61. </a>
  62. <a class="reference column" href="#" data-target=".base-tag-list">
  63. <span class="text black">
  64. {{svg "octicon-tag" 16 "mr-2"}}{{.locale.Tr "repo.tags"}}
  65. </span>
  66. </a>
  67. </div>
  68. </div>
  69. </div>
  70. <div class="scrolling menu reference-list-menu base-branch-list">
  71. {{range .Branches}}
  72. <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>
  73. {{end}}
  74. {{if not .PullRequestCtx.SameRepo}}
  75. {{range .HeadBranches}}
  76. <div class="item" data-url="{{$.HeadRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$HeadCompareName}}:{{.}}</div>
  77. {{end}}
  78. {{end}}
  79. {{if .OwnForkRepo}}
  80. {{range .OwnForkRepoBranches}}
  81. <div class="item" data-url="{{$.OwnForkRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$OwnForkCompareName}}:{{.}}</div>
  82. {{end}}
  83. {{end}}
  84. {{if .RootRepo}}
  85. {{range .RootRepoBranches}}
  86. <div class="item" data-url="{{$.RootRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$RootRepoCompareName}}:{{.}}</div>
  87. {{end}}
  88. {{end}}
  89. </div>
  90. <div class="scrolling menu reference-list-menu base-tag-list" style="display: none">
  91. {{range .Tags}}
  92. <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>
  93. {{end}}
  94. {{if not .PullRequestCtx.SameRepo}}
  95. {{range .HeadTags}}
  96. <div class="item" data-url="{{$.HeadRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$HeadCompareName}}:{{.}}</div>
  97. {{end}}
  98. {{end}}
  99. {{if .OwnForkRepo}}
  100. {{range .OwnForkRepoTags}}
  101. <div class="item" data-url="{{$.OwnForkRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$OwnForkCompareName}}:{{.}}</div>
  102. {{end}}
  103. {{end}}
  104. {{if .RootRepo}}
  105. {{range .RootRepoTags}}
  106. <div class="item" data-url="{{$.RootRepo.Link}}/compare/{{PathEscapeSegments .}}{{$.CompareSeparator}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{PathEscapeSegments $.HeadBranch}}">{{$RootRepoCompareName}}:{{.}}</div>
  107. {{end}}
  108. {{end}}
  109. </div>
  110. </div>
  111. </div>
  112. <a href="{{.RepoLink}}/compare/{{PathEscapeSegments .BaseBranch}}{{.OtherCompareSeparator}}{{if not $.PullRequestCtx.SameRepo}}{{PathEscape $.HeadUser.Name}}/{{PathEscape $.HeadRepo.Name}}:{{end}}{{PathEscapeSegments $.HeadBranch}}" title="{{.locale.Tr "repo.pulls.switch_comparison_type"}}">{{.CompareSeparator}}</a>
  113. <div class="ui floating filter dropdown">
  114. <div class="ui basic small button">
  115. <span class="text">{{if $.PageIsComparePull}}{{.locale.Tr "repo.pulls.compare_compare"}}{{else}}{{.locale.Tr "repo.compare.compare_head"}}{{end}}: {{$HeadCompareName}}:{{$.HeadBranch}}</span>
  116. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  117. </div>
  118. <div class="menu">
  119. <div class="ui icon search input">
  120. <i class="icon df ac jc m-0">{{svg "octicon-filter" 16}}</i>
  121. <input name="search" placeholder="{{.locale.Tr "repo.filter_branch_and_tag"}}...">
  122. </div>
  123. <div class="header">
  124. <div class="ui grid">
  125. <div class="two column row">
  126. <a class="reference column" href="#" data-target=".head-branch-list">
  127. <span class="text black">
  128. {{svg "octicon-git-branch" 16 "mr-2"}}{{.locale.Tr "repo.branches"}}
  129. </span>
  130. </a>
  131. <a class="reference column" href="#" data-target=".head-tag-list">
  132. <span class="text black">
  133. {{svg "octicon-tag" 16 "mr-2"}}{{.locale.Tr "repo.tags"}}
  134. </span>
  135. </a>
  136. </div>
  137. </div>
  138. </div>
  139. <div class="scrolling menu reference-list-menu head-branch-list">
  140. {{range .HeadBranches}}
  141. <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>
  142. {{end}}
  143. {{if not .PullRequestCtx.SameRepo}}
  144. {{range .Branches}}
  145. <div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.BaseName}}/{{PathEscape $.Repository.Name}}:{{PathEscapeSegments .}}">{{$BaseCompareName}}:{{.}}</div>
  146. {{end}}
  147. {{end}}
  148. {{if .OwnForkRepo}}
  149. {{range .OwnForkRepoBranches}}
  150. <div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.OwnForkRepo.OwnerName}}/{{PathEscape $.OwnForkRepo.Name}}:{{PathEscapeSegments .}}">{{$OwnForkCompareName}}:{{.}}</div>
  151. {{end}}
  152. {{end}}
  153. {{if .RootRepo}}
  154. {{range .RootRepoBranches}}
  155. <div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.RootRepo.OwnerName}}/{{PathEscape $.RootRepo.Name}}:{{PathEscapeSegments .}}">{{$RootRepoCompareName}}:{{.}}</div>
  156. {{end}}
  157. {{end}}
  158. </div>
  159. <div class="scrolling menu reference-list-menu head-tag-list" style="display: none">
  160. {{range .HeadTags}}
  161. <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>
  162. {{end}}
  163. {{if not .PullRequestCtx.SameRepo}}
  164. {{range .Tags}}
  165. <div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.BaseName}}/{{PathEscape $.Repository.Name}}:{{PathEscapeSegments .}}">{{$BaseCompareName}}:{{.}}</div>
  166. {{end}}
  167. {{end}}
  168. {{if .OwnForkRepo}}
  169. {{range .OwnForkRepoTags}}
  170. <div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.OwnForkRepo.OwnerName}}/{{PathEscape $.OwnForkRepo.Name}}:{{PathEscapeSegments .}}">{{$OwnForkCompareName}}:{{.}}</div>
  171. {{end}}
  172. {{end}}
  173. {{if .RootRepo}}
  174. {{range .RootRepoTags}}
  175. <div class="item" data-url="{{$.RepoLink}}/compare/{{PathEscapeSegments $.BaseBranch}}{{$.CompareSeparator}}{{PathEscape $.RootRepo.OwnerName}}/{{PathEscape $.RootRepo.Name}}:{{PathEscapeSegments .}}">{{$RootRepoCompareName}}:{{.}}</div>
  176. {{end}}
  177. {{end}}
  178. </div>
  179. </div>
  180. </div>
  181. </div>
  182. {{if .IsNothingToCompare}}
  183. {{if and $.IsSigned $.AllowEmptyPr (not .Repository.IsArchived)}}
  184. <div class="ui segment">{{.locale.Tr "repo.pulls.nothing_to_compare_and_allow_empty_pr"}}</div>
  185. <div class="ui info message show-form-container" {{if .Flash}}style="display: none"{{end}}>
  186. <button class="ui button green show-form">{{.locale.Tr "repo.pulls.new"}}</button>
  187. </div>
  188. <div class="pullrequest-form" {{if not .Flash}}style="display: none"{{end}}>
  189. {{template "repo/issue/new_form" .}}
  190. </div>
  191. {{else}}
  192. <div class="ui segment">{{.locale.Tr "repo.pulls.nothing_to_compare"}}</div>
  193. {{end}}
  194. {{else if and .PageIsComparePull (gt .CommitCount 0)}}
  195. {{if .HasPullRequest}}
  196. <div class="ui segment grid title">
  197. <div class="twelve wide column issue-title">
  198. {{.locale.Tr "repo.pulls.has_pull_request" (Escape $.RepoLink) (Escape $.RepoRelPath) .PullRequest.Index | Safe}}
  199. <h1>
  200. <span id="issue-title">{{RenderIssueTitle $.Context .PullRequest.Issue.Title $.RepoLink $.Repository.ComposeMetas}}</span>
  201. <span class="index">#{{.PullRequest.Issue.Index}}</span>
  202. </h1>
  203. </div>
  204. <div class="four wide right middle aligned column">
  205. {{- if .PullRequest.HasMerged -}}
  206. <a href="{{Escape $.RepoLink}}/pulls/{{.PullRequest.Issue.Index}}" class="ui button purple show-form">{{svg "octicon-git-merge" 16}} {{.locale.Tr "repo.pulls.view"}}</a>
  207. {{else if .Issue.IsClosed}}
  208. <a href="{{Escape $.RepoLink}}/pulls/{{.PullRequest.Issue.Index}}" class="ui button red show-form">{{svg "octicon-issue-closed" 16}} {{.locale.Tr "repo.pulls.view"}}</a>
  209. {{else}}
  210. <a href="{{Escape $.RepoLink}}/pulls/{{.PullRequest.Issue.Index}}" class="ui button green show-form">{{svg "octicon-git-pull-request" 16}} {{.locale.Tr "repo.pulls.view"}}</a>
  211. {{end}}</div>
  212. </div>
  213. {{else}}
  214. {{if and $.IsSigned (not .Repository.IsArchived)}}
  215. <div class="ui info message show-form-container" {{if .Flash}}style="display: none"{{end}}>
  216. <button class="ui button green show-form">{{.locale.Tr "repo.pulls.new"}}</button>
  217. </div>
  218. {{else if .Repository.IsArchived}}
  219. <div class="ui warning message">
  220. {{.locale.Tr "repo.archive.title"}}
  221. </div>
  222. {{end}}
  223. {{if $.IsSigned}}
  224. <div class="pullrequest-form" {{if not .Flash}}style="display: none"{{end}}>
  225. {{template "repo/issue/new_form" .}}
  226. </div>
  227. {{end}}
  228. {{template "repo/commits_table" .}}
  229. {{template "repo/diff/box" .}}
  230. {{end}}
  231. {{else}}
  232. {{template "repo/commits_table" .}}
  233. {{template "repo/diff/box" .}}
  234. {{end}}
  235. </div>
  236. </div>
  237. {{template "base/footer" .}}