gitea源码

commit_page.tmpl 9.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. {{template "base/head" .}}
  2. {{$commitLinkBase := print $.RepoLink (Iif $.PageIsWiki "/wiki" "") "/commit"}}
  3. <div role="main" aria-label="{{.Title}}" class="page-content repository diff">
  4. {{template "repo/header" .}}
  5. <div class="ui container fluid padded">
  6. <div class="ui top attached header clearing segment tw-relative commit-header">
  7. <div class="tw-flex tw-mb-4 tw-gap-1">
  8. <h3 class="tw-mb-0 tw-flex-1"><span class="commit-summary" title="{{.Commit.Summary}}">{{ctx.RenderUtils.RenderCommitMessage .Commit.Message $.Repository}}</span>{{template "repo/commit_statuses" dict "Status" .CommitStatus "Statuses" .CommitStatuses "AdditionalClasses" "tw-inline"}}</h3>
  9. {{if not $.PageIsWiki}}
  10. <div class="commit-header-buttons">
  11. <a class="ui primary tiny button" href="{{.SourcePath}}">
  12. {{ctx.Locale.Tr "repo.diff.browse_source"}}
  13. </a>
  14. {{if and ($.Permission.CanWrite ctx.Consts.RepoUnitTypeCode) (not $.Repository.IsArchived) (not .IsDeleted)}}{{- /* */ -}}
  15. <div class="ui dropdown primary tiny button">
  16. {{ctx.Locale.Tr "repo.commit.operations"}}
  17. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  18. <div class="menu">
  19. <div class="header">{{ctx.Locale.Tr "repo.commit.operations"}}</div>
  20. <div class="divider"></div>
  21. <div class="item show-create-branch-modal"
  22. data-content="{{ctx.Locale.Tr "repo.branch.new_branch_from" (.CommitID)}}" {{/* used by the form */}}
  23. data-branch-from="{{ShortSha .CommitID}}"
  24. data-branch-from-urlcomponent="{{.CommitID}}"
  25. data-modal="#create-branch-modal">
  26. {{ctx.Locale.Tr "repo.branch.create_branch_operation"}}
  27. </div>
  28. <div class="item show-create-branch-modal"
  29. data-content="{{ctx.Locale.Tr "repo.branch.new_branch_from" (.CommitID)}}" {{/* used by the form */}}
  30. data-branch-from="{{ShortSha .CommitID}}"
  31. data-branch-from-urlcomponent="{{.CommitID}}"
  32. data-modal="#create-tag-modal"
  33. data-modal-from-span="#modal-create-tag-from-span"
  34. data-modal-form="#create-tag-form">
  35. {{ctx.Locale.Tr "repo.tag.create_tag_operation"}}
  36. </div>
  37. <div class="item show-modal revert-button"
  38. data-modal="#cherry-pick-modal"
  39. data-modal-cherry-pick-type="revert"
  40. data-modal-cherry-pick-header="{{ctx.Locale.Tr "repo.commit.revert-header" (ShortSha .CommitID)}}"
  41. data-modal-cherry-pick-content="{{ctx.Locale.Tr "repo.commit.revert-content"}}"
  42. data-modal-cherry-pick-submit="{{ctx.Locale.Tr "repo.commit.revert"}}">{{ctx.Locale.Tr "repo.commit.revert"}}</div>
  43. <div class="item cherry-pick-button show-modal"
  44. data-modal="#cherry-pick-modal"
  45. data-modal-cherry-pick-type="cherry-pick"
  46. data-modal-cherry-pick-header="{{ctx.Locale.Tr "repo.commit.cherry-pick-header" (ShortSha .CommitID)}}"
  47. data-modal-cherry-pick-content="{{ctx.Locale.Tr "repo.commit.cherry-pick-content"}}"
  48. data-modal-cherry-pick-submit="{{ctx.Locale.Tr "repo.commit.cherry-pick"}}">{{ctx.Locale.Tr "repo.commit.cherry-pick"}}</div>
  49. <div class="ui g-modal-confirm modal" id="cherry-pick-modal">
  50. <div class="header">
  51. <span id="cherry-pick-header"></span>
  52. </div>
  53. <div class="content">
  54. <p id="cherry-pick-content" class="branch-dropdown"></p>
  55. <form method="get">
  56. {{template "repo/branch_dropdown" dict
  57. "Repository" .Repository
  58. "ShowTabBranches" true
  59. "CurrentRefType" "branch"
  60. "CurrentRefShortName" $.Repository.DefaultBranch
  61. "RefFormActionTemplate" (print "{RepoLink}/_cherrypick/" .CommitID "/{RefShortName}")
  62. }}
  63. <input type="hidden" id="cherry-pick-type" name="cherry-pick-type"><br>
  64. <button type="submit" id="cherry-pick-submit" class="ui primary button"></button>
  65. </form>
  66. </div>
  67. </div>
  68. <div class="ui small modal" id="create-branch-modal">
  69. <div class="header">
  70. {{ctx.Locale.Tr "repo.branch.new_branch"}}
  71. </div>
  72. <div class="content">
  73. <form class="ui form" id="create-branch-form" action="" data-base-action="{{.RepoLink}}/branches/_new/commit/" method="post">
  74. {{.CsrfTokenHtml}}
  75. <div class="field">
  76. <label>
  77. {{ctx.Locale.Tr "repo.branch.new_branch_from" (HTMLFormat `<span class="%s" id="%s"></span>` "text" "modal-create-branch-from-span")}}
  78. </label>
  79. </div>
  80. <div class="required field">
  81. <label for="new_branch_name">{{ctx.Locale.Tr "repo.branch.name"}}</label>
  82. <input id="new_branch_name" name="new_branch_name" required>
  83. </div>
  84. <div class="actions">
  85. <button class="ui cancel button">{{ctx.Locale.Tr "settings.cancel"}}</button>
  86. <button class="ui primary button">{{ctx.Locale.Tr "repo.branch.confirm_create_branch"}}</button>
  87. </div>
  88. </form>
  89. </div>
  90. </div>
  91. <div class="ui small modal" id="create-tag-modal">
  92. <div class="header">
  93. {{ctx.Locale.Tr "repo.tag.create_tag_operation"}}
  94. </div>
  95. <div class="content">
  96. <form class="ui form" id="create-tag-form" action="" data-base-action="{{.RepoLink}}/branches/_new/commit/" method="post">
  97. {{.CsrfTokenHtml}}
  98. <input type="hidden" name="create_tag" value="true">
  99. <div class="field">
  100. <label>
  101. {{ctx.Locale.Tr "repo.tag.create_tag_from" (HTMLFormat `<span class="%s" id="%s"></span>` "text" "modal-create-tag-from-span")}}
  102. </label>
  103. </div>
  104. <div class="required field">
  105. <label for="new_branch_name">{{ctx.Locale.Tr "repo.release.tag_name"}}</label>
  106. <input id="new_branch_name" name="new_branch_name" required>
  107. </div>
  108. <div class="actions">
  109. <button class="ui cancel button">{{ctx.Locale.Tr "settings.cancel"}}</button>
  110. <button class="ui primary button">{{ctx.Locale.Tr "repo.tag.confirm_create_tag"}}</button>
  111. </div>
  112. </form>
  113. </div>
  114. </div>
  115. </div>
  116. </div>
  117. {{end}}
  118. </div>
  119. {{end}}
  120. </div>
  121. {{if IsMultilineCommitMessage .Commit.Message}}
  122. <pre class="commit-body">{{ctx.RenderUtils.RenderCommitBody .Commit.Message $.Repository}}</pre>
  123. {{end}}
  124. {{template "repo/commit_load_branches_and_tags" .}}
  125. </div>
  126. <div class="ui bottom attached segment flex-text-block tw-flex-wrap">
  127. <div class="flex-text-inline">
  128. {{if .Author}}
  129. {{ctx.AvatarUtils.Avatar .Author 20}}
  130. {{if .Author.FullName}}
  131. <a href="{{.Author.HomeLink}}"><strong>{{.Author.FullName}}</strong></a>
  132. {{else}}
  133. <a href="{{.Author.HomeLink}}"><strong>{{.Commit.Author.Name}}</strong></a>
  134. {{end}}
  135. {{else}}
  136. {{ctx.AvatarUtils.AvatarByEmail .Commit.Author.Email .Commit.Author.Email 20}}
  137. <strong>{{.Commit.Author.Name}}</strong>
  138. {{end}}
  139. </div>
  140. <span class="text grey">{{DateUtils.TimeSince .Commit.Author.When}}</span>
  141. <div class="flex-text-inline">
  142. {{if or (ne .Commit.Committer.Name .Commit.Author.Name) (ne .Commit.Committer.Email .Commit.Author.Email)}}
  143. <span class="text grey">{{ctx.Locale.Tr "repo.diff.committed_by"}}</span>
  144. {{if and .Verification.CommittingUser .Verification.CommittingUser.ID}}
  145. {{ctx.AvatarUtils.Avatar .Verification.CommittingUser 20}}
  146. <a href="{{.Verification.CommittingUser.HomeLink}}"><strong>{{.Commit.Committer.Name}}</strong></a>
  147. {{else}}
  148. {{ctx.AvatarUtils.AvatarByEmail .Commit.Committer.Email .Commit.Committer.Name 20}}
  149. <strong>{{.Commit.Committer.Name}}</strong>
  150. {{end}}
  151. {{end}}
  152. </div>
  153. {{if .Verification}}
  154. {{template "repo/commit_sign_badge" dict "CommitSignVerification" .Verification}}
  155. {{end}}
  156. <div class="tw-flex-1"></div>
  157. <div class="flex-text-inline tw-gap-5">
  158. {{if .Parents}}
  159. <div class="flex-text-inline">
  160. <span>{{ctx.Locale.Tr "repo.diff.parent"}}</span>
  161. {{range .Parents}}
  162. <a class="ui label commit-id-short" href="{{$commitLinkBase}}/{{PathEscape .}}">{{ShortSha .}}</a>
  163. {{end}}
  164. </div>
  165. {{end}}
  166. <div class="flex-text-inline">
  167. <span>{{ctx.Locale.Tr "repo.diff.commit"}}</span>
  168. <a class="ui label commit-id-short" href="{{$commitLinkBase}}/{{PathEscape .CommitID}}">{{ShortSha .CommitID}}</a>
  169. </div>
  170. </div>
  171. </div>
  172. {{if .NoteRendered}}
  173. <div class="ui top attached header segment git-notes">
  174. {{svg "octicon-note" 16 "tw-mr-2"}}
  175. {{ctx.Locale.Tr "repo.diff.git-notes"}}:
  176. {{if .NoteAuthor}}
  177. <a href="{{.NoteAuthor.HomeLink}}">
  178. {{if .NoteAuthor.FullName}}
  179. <strong>{{.NoteAuthor.FullName}}</strong>
  180. {{else}}
  181. <strong>{{.NoteCommit.Author.Name}}</strong>
  182. {{end}}
  183. </a>
  184. {{else}}
  185. <strong>{{.NoteCommit.Author.Name}}</strong>
  186. {{end}}
  187. <span class="text grey">{{DateUtils.TimeSince .NoteCommit.Author.When}}</span>
  188. </div>
  189. <div class="ui bottom attached info segment git-notes">
  190. <pre class="commit-body">{{.NoteRendered | SanitizeHTML}}</pre>
  191. </div>
  192. {{end}}
  193. {{template "repo/diff/box" .}}
  194. </div>
  195. </div>
  196. {{template "base/footer" .}}