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