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

pull.tmpl 11 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. {{if gt (len .PullReviewers) 0}}
  2. <div class="comment box">
  3. <div class="content">
  4. <div class="ui segment">
  5. <h4>{{$.i18n.Tr "repo.issues.review.reviewers"}}</h4>
  6. {{range .PullReviewers}}
  7. {{ $createdStr:= TimeSinceUnix .UpdatedUnix $.Lang }}
  8. <div class="ui divider"></div>
  9. <div class="review-item">
  10. <span class="type-icon text {{if eq .Type 1}}green
  11. {{else if eq .Type 2}}grey
  12. {{else if eq .Type 3}}red
  13. {{else}}grey{{end}}">
  14. <span class="octicon octicon-{{.Type.Icon}}"></span>
  15. </span>
  16. <a class="ui avatar image" href="{{.Reviewer.HomeLink}}">
  17. <img src="{{.Reviewer.RelAvatarLink}}">
  18. </a>
  19. <span class="text grey"><a href="{{.Reviewer.HomeLink}}">{{.Reviewer.Name}}</a>
  20. {{if eq .Type 1}}
  21. {{$.i18n.Tr "repo.issues.review.approve" $createdStr | Safe}}
  22. {{else if eq .Type 2}}
  23. {{$.i18n.Tr "repo.issues.review.comment" $createdStr | Safe}}
  24. {{else if eq .Type 3}}
  25. {{$.i18n.Tr "repo.issues.review.reject" $createdStr | Safe}}
  26. {{else}}
  27. {{$.i18n.Tr "repo.issues.review.comment" $createdStr | Safe}}
  28. {{end}}
  29. </span>
  30. </div>
  31. {{end}}
  32. </div>
  33. </div>
  34. </div>
  35. {{end}}
  36. <div class="comment merge box">
  37. <a class="avatar text
  38. {{if .Issue.PullRequest.HasMerged}}purple
  39. {{else if .Issue.IsClosed}}grey
  40. {{else if .IsPullWorkInProgress}}grey
  41. {{else if .IsFilesConflicted}}grey
  42. {{else if .IsPullRequestBroken}}red
  43. {{else if .IsBlockedByApprovals}}red
  44. {{else if and .EnableStatusCheck (not .IsRequiredStatusCheckSuccess)}}red
  45. {{else if .Issue.PullRequest.IsChecking}}yellow
  46. {{else if .Issue.PullRequest.CanAutoMerge}}green
  47. {{else}}red{{end}}"><span class="mega-octicon octicon-git-merge"></span></a>
  48. <div class="content">
  49. {{template "repo/pulls/status" .}}
  50. <div class="ui {{if not $.LatestCommitStatus}}top attached header{{else}}attached merge-section segment{{end}}">
  51. {{if .Issue.PullRequest.HasMerged}}
  52. <div class="item text purple">
  53. {{if .Issue.PullRequest.MergedCommitID}}
  54. {{$link := printf "%s/commit/%s" $.Repository.HTMLURL .Issue.PullRequest.MergedCommitID}}
  55. {{$.i18n.Tr "repo.pulls.merged_as" $link (ShortSha .Issue.PullRequest.MergedCommitID) | Safe}}
  56. {{else}}
  57. {{$.i18n.Tr "repo.pulls.has_merged"}}
  58. {{end}}
  59. </div>
  60. {{if .IsPullBranchDeletable}}
  61. <div class="ui divider"></div>
  62. <div>
  63. <a class="delete-button ui red button" href="" data-url="{{.DeleteBranchLink}}">{{$.i18n.Tr "repo.branch.delete" .HeadTarget}}</a>
  64. </div>
  65. {{end}}
  66. {{else if .Issue.IsClosed}}
  67. <div class="item text grey">
  68. {{if .IsPullRequestBroken}}
  69. {{$.i18n.Tr "repo.pulls.cant_reopen_deleted_branch"}}
  70. {{else}}
  71. {{$.i18n.Tr "repo.pulls.reopen_to_merge"}}
  72. {{end}}
  73. </div>
  74. {{if .IsPullBranchDeletable}}
  75. <div class="ui divider"></div>
  76. <div>
  77. <a class="delete-button ui red button" href="" data-url="{{.DeleteBranchLink}}">{{$.i18n.Tr "repo.branch.delete" .HeadTarget}}</a>
  78. </div>
  79. {{end}}
  80. {{else if .IsPullFilesConflicted}}
  81. <div class="item text grey">
  82. <span class="octicon octicon-x"></span>
  83. {{$.i18n.Tr "repo.pulls.files_conflicted"}}
  84. {{range .ConflictedFiles}}
  85. <div>{{.}}</div>
  86. {{end}}
  87. </div>
  88. {{else if .IsPullRequestBroken}}
  89. <div class="item text red">
  90. <span class="octicon octicon-x"></span>
  91. {{$.i18n.Tr "repo.pulls.data_broken"}}
  92. </div>
  93. {{else if .IsPullWorkInProgress}}
  94. <div class="item text grey">
  95. <span class="octicon octicon-x"></span>
  96. {{$.i18n.Tr "repo.pulls.cannot_merge_work_in_progress" .WorkInProgressPrefix | Str2html}}
  97. </div>
  98. {{else if .IsBlockedByApprovals}}
  99. <div class="item text red">
  100. <span class="octicon octicon-x"></span>
  101. {{$.i18n.Tr "repo.pulls.blocked_by_approvals" .GrantedApprovals .Issue.PullRequest.ProtectedBranch.RequiredApprovals}}
  102. </div>
  103. {{else if .Issue.PullRequest.IsChecking}}
  104. <div class="item text yellow">
  105. <span class="octicon octicon-sync"></span>
  106. {{$.i18n.Tr "repo.pulls.is_checking"}}
  107. </div>
  108. {{else if and (not .Issue.PullRequest.CanAutoMerge) .EnableStatusCheck (not .IsRequiredStatusCheckSuccess)}}
  109. <div class="item text red">
  110. <span class="octicon octicon-x"></span>
  111. {{$.i18n.Tr "repo.pulls.required_status_check_failed"}}
  112. </div>
  113. {{else if .Issue.PullRequest.CanAutoMerge}}
  114. {{if and .EnableStatusCheck (not .IsRequiredStatusCheckSuccess)}}
  115. <div class="item text red">
  116. <span class="octicon octicon-x"></span>
  117. {{$.i18n.Tr "repo.pulls.required_status_check_failed"}}
  118. </div>
  119. {{end}}
  120. {{if or $.IsRepoAdmin (not .EnableStatusCheck) .IsRequiredStatusCheckSuccess}}
  121. {{if and $.IsRepoAdmin .EnableStatusCheck (not .IsRequiredStatusCheckSuccess)}}
  122. <div class="item text yellow">
  123. <span class="octicon octicon-primitive-dot"></span>
  124. {{$.i18n.Tr "repo.pulls.required_status_check_administrator"}}
  125. </div>
  126. {{else}}
  127. <div class="item text green">
  128. <span class="octicon octicon-check"></span>
  129. {{$.i18n.Tr "repo.pulls.can_auto_merge_desc"}}
  130. </div>
  131. {{end}}
  132. {{if .AllowMerge}}
  133. {{$prUnit := .Repository.MustGetUnit $.UnitTypePullRequests}}
  134. {{$approvers := .Issue.PullRequest.GetApprovers}}
  135. {{if or $prUnit.PullRequestsConfig.AllowMerge $prUnit.PullRequestsConfig.AllowRebase $prUnit.PullRequestsConfig.AllowRebaseMerge $prUnit.PullRequestsConfig.AllowSquash}}
  136. <div class="ui divider"></div>
  137. {{if $prUnit.PullRequestsConfig.AllowMerge}}
  138. <div class="ui form merge-fields" style="display: none">
  139. <form action="{{.Link}}/merge" method="post">
  140. {{.CsrfTokenHtml}}
  141. <div class="field">
  142. <input type="text" name="merge_title_field" value="{{.Issue.PullRequest.GetDefaultMergeMessage}}">
  143. </div>
  144. <div class="field">
  145. <textarea name="merge_message_field" rows="5" placeholder="{{$.i18n.Tr "repo.editor.commit_message_desc"}}">{{$approvers}}</textarea>
  146. </div>
  147. <button class="ui green button" type="submit" name="do" value="merge">
  148. {{$.i18n.Tr "repo.pulls.merge_pull_request"}}
  149. </button>
  150. <button class="ui button merge-cancel">
  151. {{$.i18n.Tr "cancel"}}
  152. </button>
  153. </form>
  154. </div>
  155. {{end}}
  156. {{if $prUnit.PullRequestsConfig.AllowRebase}}
  157. <div class="ui form rebase-fields" style="display: none">
  158. <form action="{{.Link}}/merge" method="post">
  159. {{.CsrfTokenHtml}}
  160. <button class="ui green button" type="submit" name="do" value="rebase">
  161. {{$.i18n.Tr "repo.pulls.rebase_merge_pull_request"}}
  162. </button>
  163. <button class="ui button merge-cancel">
  164. {{$.i18n.Tr "cancel"}}
  165. </button>
  166. </form>
  167. </div>
  168. {{end}}
  169. {{if $prUnit.PullRequestsConfig.AllowRebaseMerge}}
  170. <div class="ui form rebase-merge-fields" style="display: none">
  171. <form action="{{.Link}}/merge" method="post">
  172. {{.CsrfTokenHtml}}
  173. <div class="field">
  174. <input type="text" name="merge_title_field" value="{{.Issue.PullRequest.GetDefaultMergeMessage}}">
  175. </div>
  176. <div class="field">
  177. <textarea name="merge_message_field" rows="5" placeholder="{{$.i18n.Tr "repo.editor.commit_message_desc"}}">{{$approvers}}</textarea>
  178. </div>
  179. <button class="ui green button" type="submit" name="do" value="rebase-merge">
  180. {{$.i18n.Tr "repo.pulls.rebase_merge_commit_pull_request"}}
  181. </button>
  182. <button class="ui button merge-cancel">
  183. {{$.i18n.Tr "cancel"}}
  184. </button>
  185. </form>
  186. </div>
  187. {{end}}
  188. {{if $prUnit.PullRequestsConfig.AllowSquash}}
  189. {{$commitMessages := .Issue.PullRequest.GetCommitMessages}}
  190. <div class="ui form squash-fields" style="display: none">
  191. <form action="{{.Link}}/merge" method="post">
  192. {{.CsrfTokenHtml}}
  193. <div class="field">
  194. <input type="text" name="merge_title_field" value="{{.Issue.PullRequest.GetDefaultSquashMessage}}">
  195. </div>
  196. <div class="field">
  197. <textarea name="merge_message_field" rows="5" placeholder="{{$.i18n.Tr "repo.editor.commit_message_desc"}}">{{$commitMessages}}{{$approvers}}</textarea>
  198. </div>
  199. <button class="ui green button" type="submit" name="do" value="squash">
  200. {{$.i18n.Tr "repo.pulls.squash_merge_pull_request"}}
  201. </button>
  202. <button class="ui button merge-cancel">
  203. {{$.i18n.Tr "cancel"}}
  204. </button>
  205. </form>
  206. </div>
  207. {{end}}
  208. <div class="ui green buttons merge-button">
  209. <button class="ui button" data-do="{{.MergeStyle}}">
  210. <span class="octicon octicon-git-merge"></span>
  211. <span class="button-text">
  212. {{if eq .MergeStyle "merge"}}
  213. {{$.i18n.Tr "repo.pulls.merge_pull_request"}}
  214. {{end}}
  215. {{if eq .MergeStyle "rebase"}}
  216. {{$.i18n.Tr "repo.pulls.rebase_merge_pull_request"}}
  217. {{end}}
  218. {{if eq .MergeStyle "rebase-merge"}}
  219. {{$.i18n.Tr "repo.pulls.rebase_merge_commit_pull_request"}}
  220. {{end}}
  221. {{if eq .MergeStyle "squash"}}
  222. {{$.i18n.Tr "repo.pulls.squash_merge_pull_request"}}
  223. {{end}}
  224. </span>
  225. </button>
  226. <div class="ui dropdown icon button">
  227. <i class="dropdown icon"></i>
  228. <div class="menu">
  229. {{if $prUnit.PullRequestsConfig.AllowMerge}}
  230. <div class="item{{if eq .MergeStyle "merge"}} active selected{{end}}" data-do="merge">{{$.i18n.Tr "repo.pulls.merge_pull_request"}}</div>
  231. {{end}}
  232. {{if $prUnit.PullRequestsConfig.AllowRebase}}
  233. <div class="item{{if eq .MergeStyle "rebase"}} active selected{{end}}" data-do="rebase">{{$.i18n.Tr "repo.pulls.rebase_merge_pull_request"}}</div>
  234. {{end}}
  235. {{if $prUnit.PullRequestsConfig.AllowRebaseMerge}}
  236. <div class="item{{if eq .MergeStyle "rebase-merge"}} active selected{{end}}" data-do="rebase-merge">{{$.i18n.Tr "repo.pulls.rebase_merge_commit_pull_request"}}</div>
  237. {{end}}
  238. {{if $prUnit.PullRequestsConfig.AllowSquash}}
  239. <div class="item{{if eq .MergeStyle "squash"}} active selected{{end}}" data-do="squash">{{$.i18n.Tr "repo.pulls.squash_merge_pull_request"}}</div>
  240. {{end}}
  241. </div>
  242. </div>
  243. </div>
  244. {{else}}
  245. <div class="item text red">
  246. <span class="octicon octicon-x"></span>
  247. {{$.i18n.Tr "repo.pulls.no_merge_desc"}}
  248. </div>
  249. <div class="item text grey">
  250. <span class="octicon octicon-info"></span>
  251. {{$.i18n.Tr "repo.pulls.no_merge_helper"}}
  252. </div>
  253. {{end}}
  254. {{end}}
  255. {{end}}
  256. {{else}}
  257. <div class="item text red">
  258. <span class="octicon octicon-x"></span>
  259. {{$.i18n.Tr "repo.pulls.cannot_auto_merge_desc"}}
  260. </div>
  261. <div class="item text grey">
  262. <span class="octicon octicon-info"></span>
  263. {{$.i18n.Tr "repo.pulls.cannot_auto_merge_helper"}}
  264. </div>
  265. {{end}}
  266. </div>
  267. </div>
  268. </div>