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.

tags.tmpl 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. {{template "repo/settings/layout_head" (dict "ctxData" . "pageClass" "repository settings edit")}}
  2. <div class="repo-setting-content">
  3. {{if .Repository.IsArchived}}
  4. <div class="ui warning message tw-text-center">
  5. {{ctx.Locale.Tr "repo.settings.archive.tagsettings_unavailable"}}
  6. </div>
  7. {{else}}
  8. <h4 class="ui top attached header">
  9. {{ctx.Locale.Tr "repo.settings.tags.protection"}}
  10. </h4>
  11. <div class="ui attached segment">
  12. <div class="ui grid">
  13. <div class="sixteen wide column">
  14. <div class="ui segment">
  15. <form class="ui form" action="{{.Link}}" method="post">
  16. {{.CsrfTokenHtml}}
  17. <div class="field">
  18. <label>{{ctx.Locale.Tr "repo.settings.tags.protection.pattern"}}</label>
  19. <div id="search-tag-box" class="ui search">
  20. <div class="ui input">
  21. <input class="prompt" name="name_pattern" autocomplete="off" value="{{.name_pattern}}" placeholder="v*" autofocus required>
  22. </div>
  23. <div class="help">{{ctx.Locale.Tr "repo.settings.tags.protection.pattern.description"}}</div>
  24. </div>
  25. </div>
  26. <div class="whitelist field">
  27. <label>{{ctx.Locale.Tr "repo.settings.tags.protection.allowed.users"}}</label>
  28. <div class="ui multiple search selection dropdown">
  29. <input type="hidden" name="allowlist_users" value="{{.allowlist_users}}">
  30. <div class="default text">{{ctx.Locale.Tr "search.user_kind"}}</div>
  31. <div class="menu">
  32. {{range .Users}}
  33. <div class="item" data-value="{{.ID}}">
  34. {{ctx.AvatarUtils.Avatar . 28 "mini"}}{{template "repo/search_name" .}}
  35. </div>
  36. {{end}}
  37. </div>
  38. </div>
  39. </div>
  40. {{if .Owner.IsOrganization}}
  41. <div class="whitelist field">
  42. <label>{{ctx.Locale.Tr "repo.settings.tags.protection.allowed.teams"}}</label>
  43. <div class="ui multiple search selection dropdown">
  44. <input type="hidden" name="allowlist_teams" value="{{.allowlist_teams}}">
  45. <div class="default text">{{ctx.Locale.Tr "search.team_kind"}}</div>
  46. <div class="menu">
  47. {{range .Teams}}
  48. <div class="item" data-value="{{.ID}}">
  49. {{svg "octicon-people"}}
  50. {{.Name}}
  51. </div>
  52. {{end}}
  53. </div>
  54. </div>
  55. </div>
  56. {{end}}
  57. <div class="field">
  58. {{if .PageIsEditProtectedTag}}
  59. <button class="ui primary button">
  60. {{ctx.Locale.Tr "save"}}
  61. </button>
  62. <a class="ui primary button" href="{{$.RepoLink}}/settings/tags">
  63. {{ctx.Locale.Tr "cancel"}}
  64. </a>
  65. {{else}}
  66. <button class="ui primary button">
  67. {{ctx.Locale.Tr "repo.settings.tags.protection.create"}}
  68. </button>
  69. {{end}}
  70. </div>
  71. </form>
  72. </div>
  73. </div>
  74. <div class="sixteen wide column">
  75. <table class="ui single line table">
  76. <thead>
  77. <th>{{ctx.Locale.Tr "repo.settings.tags.protection.pattern"}}</th>
  78. <th>{{ctx.Locale.Tr "repo.settings.tags.protection.allowed"}}</th>
  79. <th></th>
  80. </thead>
  81. <tbody>
  82. {{range .ProtectedTags}}
  83. <tr>
  84. <td><pre>{{.NamePattern}}</pre></td>
  85. <td>
  86. {{if or .AllowlistUserIDs (and $.Owner.IsOrganization .AllowlistTeamIDs)}}
  87. {{$userIDs := .AllowlistUserIDs}}
  88. {{range $.Users}}
  89. {{if SliceUtils.Contains $userIDs .ID}}
  90. <a class="ui basic label" href="{{.HomeLink}}">{{ctx.AvatarUtils.Avatar . 26}} {{.GetDisplayName}}</a>
  91. {{end}}
  92. {{end}}
  93. {{if $.Owner.IsOrganization}}
  94. {{$teamIDs := .AllowlistTeamIDs}}
  95. {{range $.Teams}}
  96. {{if SliceUtils.Contains $teamIDs .ID}}
  97. <a class="ui basic label" href="{{$.Owner.OrganisationLink}}/teams/{{PathEscape .LowerName}}">{{.Name}}</a>
  98. {{end}}
  99. {{end}}
  100. {{end}}
  101. {{else}}
  102. {{ctx.Locale.Tr "repo.settings.tags.protection.allowed.noone"}}
  103. {{end}}
  104. </td>
  105. <td class="right aligned">
  106. <a class="ui tiny primary button" href="{{$.RepoLink}}/settings/tags/{{.ID}}">{{ctx.Locale.Tr "edit"}}</a>
  107. <form class="tw-inline-block" action="{{$.RepoLink}}/settings/tags/delete" method="post">
  108. {{$.CsrfTokenHtml}}
  109. <input type="hidden" name="id" value="{{.ID}}">
  110. <button class="ui tiny red button">{{ctx.Locale.Tr "remove"}}</button>
  111. </form>
  112. </td>
  113. </tr>
  114. {{else}}
  115. <tr class="center aligned"><td colspan="3">{{ctx.Locale.Tr "repo.settings.tags.protection.none"}}</td></tr>
  116. {{end}}
  117. </tbody>
  118. </table>
  119. </div>
  120. </div>
  121. </div>
  122. {{end}}
  123. </div>
  124. {{template "repo/settings/layout_footer" .}}