this repo has no description
1{{ define "title" }}{{ .Tab }} settings · {{ .RepoInfo.FullName }}{{ end }}
2
3{{ define "repoContent" }}
4 <section class="w-full grid grid-cols-1 md:grid-cols-4 gap-2">
5 <div class="col-span-1">
6 {{ template "repo/settings/fragments/sidebar" . }}
7 </div>
8 <div class="col-span-1 md:col-span-3 flex flex-col gap-6 p-2">
9 {{ template "branchSettings" . }}
10 {{ template "defaultLabelSettings" . }}
11 {{ template "customLabelSettings" . }}
12 {{ template "deleteRepo" . }}
13 <div id="operation-error" class="text-red-500 dark:text-red-400"></div>
14 </div>
15 </section>
16{{ end }}
17
18{{ define "branchSettings" }}
19 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
20 <div class="col-span-1 md:col-span-2">
21 <h2 class="text-sm pb-2 uppercase font-bold">Default Branch</h2>
22 <p class="text-gray-500 dark:text-gray-400">
23 The default branch is considered the “base” branch in your repository,
24 against which all pull requests and code commits are automatically made,
25 unless you specify a different branch.
26 </p>
27 </div>
28 <form hx-put="/{{ $.RepoInfo.FullName }}/settings/branches/default" hx-swap="none" class="col-span-1 md:col-span-1 md:justify-self-end group flex gap-2 items-stretch">
29 <select id="branch" name="branch" required class="p-1 max-w-64 border border-gray-200 bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700">
30 <option value="" disabled selected >
31 Choose a default branch
32 </option>
33 {{ range .Branches }}
34 <option value="{{ .Name }}" class="py-1" {{ if .IsDefault }}selected{{ end }} >
35 {{ .Name }}
36 </option>
37 {{ end }}
38 </select>
39 <button class="btn flex gap-2 items-center" type="submit">
40 {{ i "check" "size-4" }}
41 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
42 </button>
43 </form>
44 </div>
45{{ end }}
46
47{{ define "defaultLabelSettings" }}
48 <div class="flex flex-col gap-2">
49 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
50 <div class="col-span-1 md:col-span-2">
51 <h2 class="text-sm pb-2 uppercase font-bold">Default Labels</h2>
52 <p class="text-gray-500 dark:text-gray-400">
53 Manage your issues and pulls by creating labels to categorize them. Only
54 repository owners may configure labels. You may choose to subscribe to
55 default labels, or create entirely custom labels.
56 <p>
57 </div>
58 <form class="col-span-1 md:col-span-1 md:justify-self-end">
59 {{ $title := "Unubscribe from all labels" }}
60 {{ $icon := "x" }}
61 {{ $text := "unsubscribe all" }}
62 {{ $action := "unsubscribe" }}
63 {{ if $.ShouldSubscribeAll }}
64 {{ $title = "Subscribe to all labels" }}
65 {{ $icon = "check-check" }}
66 {{ $text = "subscribe all" }}
67 {{ $action = "subscribe" }}
68 {{ end }}
69 {{ range .DefaultLabels }}
70 <input type="hidden" name="label" value="{{ .AtUri.String }}">
71 {{ end }}
72 <button
73 type="submit"
74 title="{{$title}}"
75 class="btn flex items-center gap-2 group"
76 hx-swap="none"
77 hx-post="/{{ $.RepoInfo.FullName }}/settings/label/{{$action}}"
78 {{ if not .RepoInfo.Roles.IsOwner }}disabled{{ end }}>
79 {{ i $icon "size-4" }}
80 {{ $text }}
81 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
82 </button>
83 </form>
84 </div>
85 <div class="flex flex-col rounded border border-gray-200 dark:border-gray-700 divide-y divide-gray-200 dark:divide-gray-700 w-full">
86 {{ range .DefaultLabels }}
87 <div id="label-{{.Id}}" class="flex items-center justify-between p-2 pl-4">
88 {{ template "repo/settings/fragments/labelListing" (list $ .) }}
89 {{ $action := "subscribe" }}
90 {{ $icon := "plus" }}
91 {{ if mapContains $.SubscribedLabels .AtUri.String }}
92 {{ $action = "unsubscribe" }}
93 {{ $icon = "minus" }}
94 {{ end }}
95 <button
96 class="btn gap-2 group"
97 title="{{$action}} from label"
98 {{ if not $.RepoInfo.Roles.IsOwner }}disabled{{ end }}
99 hx-post="/{{ $.RepoInfo.FullName }}/settings/label/{{$action}}"
100 hx-swap="none"
101 hx-vals='{"label": "{{ .AtUri.String }}"}'>
102 {{ i $icon "size-4" }}
103 <span class="hidden md:inline">{{$action}}</span>
104 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
105 </button>
106 </div>
107 {{ else }}
108 <div class="flex items-center justify-center p-2 text-gray-500">
109 no labels added yet
110 </div>
111 {{ end }}
112 </div>
113 <div id="default-label-operation" class="error"></div>
114 </div>
115{{ end }}
116
117{{ define "customLabelSettings" }}
118 <div class="flex flex-col gap-2">
119 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
120 <div class="col-span-1 md:col-span-2">
121 <h2 class="text-sm pb-2 uppercase font-bold">Custom Labels</h2>
122 </div>
123 <div class="col-span-1 md:col-span-1 md:justify-self-end">
124 <button
125 title="Add custom label"
126 class="btn flex items-center gap-2"
127 popovertarget="add-labeldef-modal"
128 {{ if not .RepoInfo.Roles.IsOwner }}disabled{{ end }}
129 popovertargetaction="toggle">
130 {{ i "plus" "size-4" }}
131 add label
132 </button>
133 <div
134 id="add-labeldef-modal"
135 popover
136 class="bg-white w-full sm:w-[30rem] dark:bg-gray-800 p-6 max-h-dvh overflow-y-auto rounded border border-gray-200 dark:border-gray-700 drop-shadow dark:text-white backdrop:bg-gray-400/50 dark:backdrop:bg-gray-800/50">
137 {{ template "repo/settings/fragments/addLabelDefModal" . }}
138 </div>
139 </div>
140 </div>
141 <div class="flex flex-col rounded border border-gray-200 dark:border-gray-700 divide-y divide-gray-200 dark:divide-gray-700 w-full">
142 {{ range .Labels }}
143 <div id="label-{{.Id}}" class="flex items-center justify-between p-2 pl-4">
144 {{ template "repo/settings/fragments/labelListing" (list $ .) }}
145 {{ if $.RepoInfo.Roles.IsOwner }}
146 <button
147 class="btn text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300 gap-2 group"
148 title="Delete label"
149 hx-delete="/{{ $.RepoInfo.FullName }}/settings/label"
150 hx-swap="none"
151 hx-vals='{"label-id": "{{ .Id }}"}'
152 hx-confirm="Are you sure you want to delete the label `{{ .Name }}`?"
153 >
154 {{ i "trash-2" "w-5 h-5" }}
155 <span class="hidden md:inline">delete</span>
156 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
157 </button>
158 {{ end }}
159 </div>
160 {{ else }}
161 <div class="flex items-center justify-center p-2 text-gray-500">
162 no labels added yet
163 </div>
164 {{ end }}
165 </div>
166 <div id="label-operation" class="error"></div>
167 </div>
168{{ end }}
169
170{{ define "deleteRepo" }}
171 {{ if .RepoInfo.Roles.RepoDeleteAllowed }}
172 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center">
173 <div class="col-span-1 md:col-span-2">
174 <h2 class="text-sm pb-2 uppercase text-red-500 dark:text-red-400 font-bold">Delete Repository</h2>
175 <p class="text-red-500 dark:text-red-400 ">
176 Deleting a repository is irreversible and permanent. Be certain before deleting a repository.
177 </p>
178 </div>
179 <div class="col-span-1 md:col-span-1 md:justify-self-end">
180 <button
181 class="btn group text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300 flex gap-2 items-center"
182 type="button"
183 hx-swap="none"
184 hx-delete="/{{ $.RepoInfo.FullName }}/settings/delete"
185 hx-confirm="Are you sure you want to delete {{ $.RepoInfo.FullName }}?">
186 {{ i "trash-2" "size-4" }}
187 delete
188 <span class="ml-2 w-4 h-4 animate-spin hidden group-[.htmx-request]:inline">
189 {{ i "loader-circle" "w-4 h-4" }}
190 </span>
191 </button>
192 </div>
193 </div>
194 {{ end }}
195{{ end }}
196