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.

protected_branch.tmpl 9.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. {{template "base/head" .}}
  2. <div class="repository settings branches">
  3. {{template "repo/header" .}}
  4. {{template "repo/settings/navbar" .}}
  5. <div class="ui container">
  6. {{template "base/alert" .}}
  7. <h4 class="ui top attached header">
  8. {{.i18n.Tr "repo.settings.branch_protection" .Branch.BranchName | Str2html}}
  9. </h4>
  10. <div class="ui attached segment branch-protection">
  11. <form class="ui form" action="{{.Link}}" method="post">
  12. {{.CsrfTokenHtml}}
  13. <div class="inline field">
  14. <div class="ui checkbox">
  15. <input class="enable-protection" name="protected" type="checkbox" data-target="#protection_box" {{if .Branch.IsProtected}}checked{{end}}>
  16. <label>{{.i18n.Tr "repo.settings.protect_this_branch"}}</label>
  17. <p class="help">{{.i18n.Tr "repo.settings.protect_this_branch_desc"}}</p>
  18. </div>
  19. </div>
  20. <div id="protection_box" class="fields {{if not .Branch.IsProtected}}disabled{{end}}">
  21. <div class="field">
  22. <div class="ui radio checkbox">
  23. <input name="enable_push" type="radio" value="none" class="disable-whitelist" data-target="#whitelist_box" {{if not .Branch.CanPush}}checked{{end}}>
  24. <label>{{.i18n.Tr "repo.settings.protect_disable_push"}}</label>
  25. <p class="help">{{.i18n.Tr "repo.settings.protect_disable_push_desc"}}</p>
  26. </div>
  27. </div>
  28. <div class="field">
  29. <div class="ui radio checkbox">
  30. <input name="enable_push" type="radio" value="all" class="disable-whitelist" data-target="#whitelist_box" {{if and (.Branch.CanPush) (not .Branch.EnableWhitelist)}}checked{{end}}>
  31. <label>{{.i18n.Tr "repo.settings.protect_enable_push"}}</label>
  32. <p class="help">{{.i18n.Tr "repo.settings.protect_enable_push_desc"}}</p>
  33. </div>
  34. </div>
  35. <div class="field">
  36. <div class="ui radio checkbox">
  37. <input name="enable_push" type="radio" value="whitelist" class="enable-whitelist" data-target="#whitelist_box" {{if and (.Branch.CanPush) (.Branch.EnableWhitelist)}}checked{{end}}>
  38. <label>{{.i18n.Tr "repo.settings.protect_whitelist_committers"}}</label>
  39. <p class="help">{{.i18n.Tr "repo.settings.protect_whitelist_committers_desc"}}</p>
  40. </div>
  41. </div>
  42. <div id="whitelist_box" class="fields {{if not .Branch.EnableWhitelist}}disabled{{end}}">
  43. <div class="whitelist field">
  44. <label>{{.i18n.Tr "repo.settings.protect_whitelist_users"}}</label>
  45. <div class="ui multiple search selection dropdown">
  46. <input type="hidden" name="whitelist_users" value="{{.whitelist_users}}">
  47. <div class="default text">{{.i18n.Tr "repo.settings.protect_whitelist_search_users"}}</div>
  48. <div class="menu">
  49. {{range .Users}}
  50. <div class="item" data-value="{{.ID}}">
  51. <img class="ui mini image" src="{{.RelAvatarLink}}">
  52. {{.Name}}
  53. </div>
  54. {{end}}
  55. </div>
  56. </div>
  57. </div>
  58. {{if .Owner.IsOrganization}}
  59. <br>
  60. <div class="whitelist field">
  61. <label>{{.i18n.Tr "repo.settings.protect_whitelist_teams"}}</label>
  62. <div class="ui multiple search selection dropdown">
  63. <input type="hidden" name="whitelist_teams" value="{{.whitelist_teams}}">
  64. <div class="default text">{{.i18n.Tr "repo.settings.protect_whitelist_search_teams"}}</div>
  65. <div class="menu">
  66. {{range .Teams}}
  67. <div class="item" data-value="{{.ID}}">
  68. <i class="octicon octicon-jersey"></i>
  69. {{.Name}}
  70. </div>
  71. {{end}}
  72. </div>
  73. </div>
  74. </div>
  75. {{end}}
  76. <br>
  77. <div class="whitelist field">
  78. <div class="ui checkbox">
  79. <input type="checkbox" name="whitelist_deploy_keys" {{if .Branch.WhitelistDeployKeys}}checked{{end}}>
  80. <label for="whitelist_deploy_keys">{{.i18n.Tr "repo.settings.protect_whitelist_deploy_keys"}}</label>
  81. </div>
  82. </div>
  83. </div>
  84. <div class="field">
  85. <div class="ui checkbox">
  86. <input class="enable-whitelist" name="enable_merge_whitelist" type="checkbox" data-target="#merge_whitelist_box" {{if .Branch.EnableMergeWhitelist}}checked{{end}}>
  87. <label>{{.i18n.Tr "repo.settings.protect_merge_whitelist_committers"}}</label>
  88. <p class="help">{{.i18n.Tr "repo.settings.protect_merge_whitelist_committers_desc"}}</p>
  89. </div>
  90. </div>
  91. <div id="merge_whitelist_box" class="fields {{if not .Branch.EnableMergeWhitelist}}disabled{{end}}">
  92. <div class="whitelist field">
  93. <label>{{.i18n.Tr "repo.settings.protect_merge_whitelist_users"}}</label>
  94. <div class="ui multiple search selection dropdown">
  95. <input type="hidden" name="merge_whitelist_users" value="{{.merge_whitelist_users}}">
  96. <div class="default text">{{.i18n.Tr "repo.settings.protect_whitelist_search_users"}}</div>
  97. <div class="menu">
  98. {{range .Users}}
  99. <div class="item" data-value="{{.ID}}">
  100. <img class="ui mini image" src="{{.RelAvatarLink}}">
  101. {{.Name}}
  102. </div>
  103. {{end}}
  104. </div>
  105. </div>
  106. </div>
  107. {{if .Owner.IsOrganization}}
  108. <br>
  109. <div class="whitelist field">
  110. <label>{{.i18n.Tr "repo.settings.protect_merge_whitelist_teams"}}</label>
  111. <div class="ui multiple search selection dropdown">
  112. <input type="hidden" name="merge_whitelist_teams" value="{{.merge_whitelist_teams}}">
  113. <div class="default text">{{.i18n.Tr "repo.settings.protect_whitelist_search_teams"}}</div>
  114. <div class="menu">
  115. {{range .Teams}}
  116. <div class="item" data-value="{{.ID}}">
  117. <i class="octicon octicon-jersey"></i>
  118. {{.Name}}
  119. </div>
  120. {{end}}
  121. </div>
  122. </div>
  123. </div>
  124. {{end}}
  125. </div>
  126. <div class="field">
  127. <div class="ui checkbox">
  128. <input class="enable-statuscheck" name="enable_status_check" type="checkbox" data-target="#statuscheck_contexts_box" {{if .Branch.EnableStatusCheck}}checked{{end}}>
  129. <label>{{.i18n.Tr "repo.settings.protect_check_status_contexts"}}</label>
  130. <p class="help">{{.i18n.Tr "repo.settings.protect_check_status_contexts_desc"}}</p>
  131. </div>
  132. </div>
  133. <div id="statuscheck_contexts_box" class="fields {{if not .Branch.EnableStatusCheck}}disabled{{end}}">
  134. <div class="field">
  135. <table class="ui celled table six column">
  136. <thead>
  137. <tr><th>
  138. {{.i18n.Tr "repo.settings.protect_check_status_contexts_list"}}
  139. </th>
  140. </tr>
  141. </thead>
  142. <tbody>
  143. {{range $.branch_status_check_contexts}}
  144. <tr><td>
  145. <span class="ui checkbox">
  146. <input class="enable-whitelist" name="status_check_contexts" value="{{.}}" type="checkbox" {{if $.is_context_required}}{{if call $.is_context_required .}}checked{{end}}{{end}}>
  147. </span>
  148. {{.}}
  149. {{if $.is_context_required}}{{if call $.is_context_required .}}<div class="ui label right">Required</div>{{end}}{{end}}
  150. </td></tr>
  151. {{end}}
  152. </tbody>
  153. </table>
  154. </div>
  155. </div>
  156. <div class="field">
  157. <label for="required-approvals">{{.i18n.Tr "repo.settings.protect_required_approvals"}}</label>
  158. <input name="required_approvals" id="required-approvals" type="number" value="{{.Branch.RequiredApprovals}}">
  159. <p class="help">{{.i18n.Tr "repo.settings.protect_required_approvals_desc"}}</p>
  160. </div>
  161. <div class="field">
  162. <div class="ui checkbox">
  163. <input class="enable-whitelist" name="enable_approvals_whitelist" type="checkbox" data-target="#approvals_whitelist_box" {{if .Branch.EnableApprovalsWhitelist}}checked{{end}}>
  164. <label>{{.i18n.Tr "repo.settings.protect_approvals_whitelist_enabled"}}</label>
  165. <p class="help">{{.i18n.Tr "repo.settings.protect_approvals_whitelist_enabled_desc"}}</p>
  166. </div>
  167. </div>
  168. <div id="approvals_whitelist_box" class="fields {{if not .Branch.EnableApprovalsWhitelist}}disabled{{end}}">
  169. <div class="whitelist field">
  170. <label>{{.i18n.Tr "repo.settings.protect_approvals_whitelist_users"}}</label>
  171. <div class="ui multiple search selection dropdown">
  172. <input type="hidden" name="approvals_whitelist_users" value="{{.approvals_whitelist_users}}">
  173. <div class="default text">{{.i18n.Tr "repo.settings.protect_whitelist_search_users"}}</div>
  174. <div class="menu">
  175. {{range .Users}}
  176. <div class="item" data-value="{{.ID}}">
  177. <img class="ui mini image" src="{{.RelAvatarLink}}">
  178. {{.Name}}
  179. </div>
  180. {{end}}
  181. </div>
  182. </div>
  183. </div>
  184. {{if .Owner.IsOrganization}}
  185. <br>
  186. <div class="whitelist field">
  187. <label>{{.i18n.Tr "repo.settings.protect_approvals_whitelist_teams"}}</label>
  188. <div class="ui multiple search selection dropdown">
  189. <input type="hidden" name="approvals_whitelist_teams" value="{{.approvals_whitelist_teams}}">
  190. <div class="default text">{{.i18n.Tr "repo.settings.protect_whitelist_search_teams"}}</div>
  191. <div class="menu">
  192. {{range .Teams}}
  193. <div class="item" data-value="{{.ID}}">
  194. <i class="octicon octicon-jersey"></i>
  195. {{.Name}}
  196. </div>
  197. {{end}}
  198. </div>
  199. </div>
  200. </div>
  201. {{end}}
  202. </div>
  203. </div>
  204. <div class="ui divider"></div>
  205. <div class="field">
  206. <button class="ui green button">{{$.i18n.Tr "repo.settings.update_settings"}}</button>
  207. </div>
  208. </form>
  209. </div>
  210. </div>
  211. </div>
  212. {{template "base/footer" .}}