Monorepo for Tangled tangled.org
at master 9.9 kB view raw
1{{ define "title" }}{{ .Tab }} settings &middot; {{ .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 "baseSettings" . }} 10 {{ template "branchSettings" . }} 11 {{ template "defaultLabelSettings" . }} 12 {{ template "customLabelSettings" . }} 13 {{ template "deleteRepo" . }} 14 <div id="operation-error" class="text-red-500 dark:text-red-400"></div> 15 </div> 16 </section> 17{{ end }} 18 19{{ define "baseSettings" }} 20 <form hx-put="/{{ $.RepoInfo.FullName }}/settings/base" hx-swap="none"> 21 <fieldset 22 class="" 23 {{ if not .RepoInfo.Roles.IsOwner }}disabled{{ end }} 24 > 25 <h2 class="text-sm pb-2 uppercase font-bold">Description</h2> 26 <textarea 27 rows="3" 28 class="w-full mb-2" 29 id="base-form-description" 30 name="description" 31 >{{ .RepoInfo.Description }}</textarea> 32 <h2 class="text-sm pb-2 uppercase font-bold">Website URL</h2> 33 <input 34 type="text" 35 class="w-full mb-2" 36 id="base-form-website" 37 name="website" 38 value="{{ .RepoInfo.Website }}" 39 > 40 <h2 class="text-sm pb-2 uppercase font-bold">Topics</h2> 41 <p class="text-gray-500 dark:text-gray-400"> 42 List of topics separated by spaces. 43 </p> 44 <textarea 45 rows="2" 46 class="w-full my-2" 47 id="base-form-topics" 48 name="topics" 49 >{{ range $topic := .RepoInfo.Topics }}{{ $topic }} {{ end }}</textarea> 50 <div id="repo-base-settings-error" class="text-red-500 dark:text-red-400"></div> 51 <div class="flex justify-end pt-2"> 52 <button 53 type="submit" 54 class="btn-create flex items-center gap-2 group" 55 > 56 {{ i "save" "w-4 h-4" }} 57 save 58 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 59 </button> 60 </div> 61 </fieldset> 62 </form> 63{{ end }} 64 65{{ define "branchSettings" }} 66 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center"> 67 <div class="col-span-1 md:col-span-2"> 68 <h2 class="text-sm pb-2 uppercase font-bold">Default Branch</h2> 69 <p class="text-gray-500 dark:text-gray-400"> 70 The default branch is considered the “base” branch in your repository, 71 against which all pull requests and code commits are automatically made, 72 unless you specify a different branch. 73 </p> 74 </div> 75 <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"> 76 <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"> 77 <option value="" disabled selected > 78 Choose a default branch 79 </option> 80 {{ range .Branches }} 81 <option value="{{ .Name }}" class="py-1" {{ if .IsDefault }}selected{{ end }} > 82 {{ .Name }} 83 </option> 84 {{ end }} 85 </select> 86 <button class="btn flex gap-2 items-center" type="submit"> 87 {{ i "check" "size-4" }} 88 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 89 </button> 90 </form> 91 </div> 92{{ end }} 93 94{{ define "defaultLabelSettings" }} 95 <div class="flex flex-col gap-2"> 96 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center"> 97 <div class="col-span-1 md:col-span-2"> 98 <h2 class="text-sm pb-2 uppercase font-bold">Default Labels</h2> 99 <p class="text-gray-500 dark:text-gray-400"> 100 Manage your issues and pulls by creating labels to categorize them. Only 101 repository owners may configure labels. You may choose to subscribe to 102 default labels, or create entirely custom labels. 103 <p> 104 </div> 105 <form class="col-span-1 md:col-span-1 md:justify-self-end"> 106 {{ $title := "Unubscribe from all labels" }} 107 {{ $icon := "x" }} 108 {{ $text := "unsubscribe all" }} 109 {{ $action := "unsubscribe" }} 110 {{ if $.ShouldSubscribeAll }} 111 {{ $title = "Subscribe to all labels" }} 112 {{ $icon = "check-check" }} 113 {{ $text = "subscribe all" }} 114 {{ $action = "subscribe" }} 115 {{ end }} 116 {{ range .DefaultLabels }} 117 <input type="hidden" name="label" value="{{ .AtUri.String }}"> 118 {{ end }} 119 <button 120 type="submit" 121 title="{{$title}}" 122 class="btn flex items-center gap-2 group" 123 hx-swap="none" 124 hx-post="/{{ $.RepoInfo.FullName }}/settings/label/{{$action}}" 125 {{ if not .RepoInfo.Roles.IsOwner }}disabled{{ end }}> 126 {{ i $icon "size-4" }} 127 {{ $text }} 128 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 129 </button> 130 </form> 131 </div> 132 <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"> 133 {{ range .DefaultLabels }} 134 <div id="label-{{.Id}}" class="flex items-center justify-between p-2 pl-4"> 135 {{ template "repo/settings/fragments/labelListing" (list $ .) }} 136 {{ $action := "subscribe" }} 137 {{ $icon := "plus" }} 138 {{ if mapContains $.SubscribedLabels .AtUri.String }} 139 {{ $action = "unsubscribe" }} 140 {{ $icon = "minus" }} 141 {{ end }} 142 <button 143 class="btn gap-2 group" 144 title="{{$action}} from label" 145 {{ if not $.RepoInfo.Roles.IsOwner }}disabled{{ end }} 146 hx-post="/{{ $.RepoInfo.FullName }}/settings/label/{{$action}}" 147 hx-swap="none" 148 hx-vals='{"label": "{{ .AtUri.String }}"}'> 149 {{ i $icon "size-4" }} 150 <span class="hidden md:inline">{{$action}}</span> 151 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 152 </button> 153 </div> 154 {{ else }} 155 <div class="flex items-center justify-center p-2 text-gray-500"> 156 no labels added yet 157 </div> 158 {{ end }} 159 </div> 160 <div id="default-label-operation" class="error"></div> 161 </div> 162{{ end }} 163 164{{ define "customLabelSettings" }} 165 <div class="flex flex-col gap-2"> 166 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center"> 167 <div class="col-span-1 md:col-span-2"> 168 <h2 class="text-sm pb-2 uppercase font-bold">Custom Labels</h2> 169 </div> 170 <div class="col-span-1 md:col-span-1 md:justify-self-end"> 171 <button 172 title="Add custom label" 173 class="btn flex items-center gap-2" 174 popovertarget="add-labeldef-modal" 175 {{ if not .RepoInfo.Roles.IsOwner }}disabled{{ end }} 176 popovertargetaction="toggle"> 177 {{ i "plus" "size-4" }} 178 add label 179 </button> 180 <div 181 id="add-labeldef-modal" 182 popover 183 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"> 184 {{ template "repo/settings/fragments/addLabelDefModal" . }} 185 </div> 186 </div> 187 </div> 188 <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"> 189 {{ range .Labels }} 190 <div id="label-{{.Id}}" class="flex items-center justify-between p-2 pl-4"> 191 {{ template "repo/settings/fragments/labelListing" (list $ .) }} 192 {{ if $.RepoInfo.Roles.IsOwner }} 193 <button 194 class="btn text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300 gap-2 group" 195 title="Delete label" 196 hx-delete="/{{ $.RepoInfo.FullName }}/settings/label" 197 hx-swap="none" 198 hx-vals='{"label-id": "{{ .Id }}"}' 199 hx-confirm="Are you sure you want to delete the label `{{ .Name }}`?" 200 > 201 {{ i "trash-2" "w-5 h-5" }} 202 <span class="hidden md:inline">delete</span> 203 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 204 </button> 205 {{ end }} 206 </div> 207 {{ else }} 208 <div class="flex items-center justify-center p-2 text-gray-500"> 209 no labels added yet 210 </div> 211 {{ end }} 212 </div> 213 <div id="label-operation" class="error"></div> 214 </div> 215{{ end }} 216 217{{ define "deleteRepo" }} 218 {{ if .RepoInfo.Roles.RepoDeleteAllowed }} 219 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center"> 220 <div class="col-span-1 md:col-span-2"> 221 <h2 class="text-sm pb-2 uppercase text-red-500 dark:text-red-400 font-bold">Delete Repository</h2> 222 <p class="text-red-500 dark:text-red-400 "> 223 Deleting a repository is irreversible and permanent. Be certain before deleting a repository. 224 </p> 225 </div> 226 <div class="col-span-1 md:col-span-1 md:justify-self-end"> 227 <button 228 class="btn group text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300 flex gap-2 items-center" 229 type="button" 230 hx-swap="none" 231 hx-delete="/{{ $.RepoInfo.FullName }}/settings/delete" 232 hx-confirm="Are you sure you want to delete {{ $.RepoInfo.FullName }}?"> 233 {{ i "trash-2" "size-4" }} 234 delete 235 <span class="ml-2 w-4 h-4 animate-spin hidden group-[.htmx-request]:inline"> 236 {{ i "loader-circle" "w-4 h-4" }} 237 </span> 238 </button> 239 </div> 240 </div> 241 {{ end }} 242{{ end }} 243