this repo has no description
1{{ define "title" }}{{ .Registration.Domain }} · {{ .Tab }} settings{{ end }}
2
3{{ define "content" }}
4 <div class="p-6">
5 <p class="text-xl font-bold dark:text-white">Settings</p>
6 </div>
7 <div class="bg-white dark:bg-gray-800 p-6 rounded relative w-full mx-auto drop-shadow-sm dark:text-white">
8 <section class="w-full grid grid-cols-1 md:grid-cols-4 gap-6">
9 <div class="col-span-1">
10 {{ template "user/settings/fragments/sidebar" . }}
11 </div>
12 <div class="col-span-1 md:col-span-3 flex flex-col gap-6">
13 {{ template "knotDash" . }}
14 </div>
15 </section>
16 </div>
17{{ end }}
18
19{{ define "knotDash" }}
20<div>
21 <div class="flex justify-between items-center">
22 <h2 class="text-sm pb-2 uppercase font-bold">{{ .Tab }} · {{ .Registration.Domain }}</h2>
23 <div id="right-side" class="flex gap-2">
24 {{ $style := "px-2 py-1 rounded flex items-center flex-shrink-0 gap-2" }}
25 {{ $isOwner := and .LoggedInUser (eq .LoggedInUser.Did .Registration.ByDid) }}
26 {{ if .Registration.IsRegistered }}
27 <span class="bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200 {{$style}}">{{ i "shield-check" "w-4 h-4" }} verified</span>
28 {{ if $isOwner }}
29 {{ template "knots/fragments/addMemberModal" .Registration }}
30 {{ end }}
31 {{ else if .Registration.IsReadOnly }}
32 <span class="bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200 {{$style}}">
33 {{ i "shield-alert" "w-4 h-4" }} read-only
34 </span>
35 {{ if $isOwner }}
36 {{ block "retryButton" .Registration }} {{ end }}
37 {{ end }}
38 {{ else }}
39 <span class="bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200 {{$style}}">{{ i "shield-off" "w-4 h-4" }} unverified</span>
40 {{ if $isOwner }}
41 {{ block "retryButton" .Registration }} {{ end }}
42 {{ end }}
43 {{ end }}
44
45 {{ if $isOwner }}
46 {{ block "deleteButton" .Registration }} {{ end }}
47 {{ end }}
48 </div>
49 </div>
50 <div id="operation-error" class="dark:text-red-400"></div>
51</div>
52
53{{ if .Members }}
54 <section class="bg-white dark:bg-gray-800 rounded relative w-full mx-auto drop-shadow-sm dark:text-white">
55 <div class="flex flex-col gap-2">
56 {{ block "member" . }} {{ end }}
57 </div>
58 </section>
59{{ end }}
60{{ end }}
61
62
63{{ define "member" }}
64 {{ range .Members }}
65 <div>
66 <div class="flex justify-between items-center">
67 <div class="flex items-center gap-2">
68 {{ template "user/fragments/picHandleLink" . }}
69 <span class="ml-2 font-mono text-gray-500">{{.}}</span>
70 </div>
71 {{ if ne $.LoggedInUser.Did . }}
72 {{ block "removeMemberButton" (list $ . ) }} {{ end }}
73 {{ end }}
74 </div>
75 <div class="ml-2 pl-2 pt-2 border-l border-gray-200 dark:border-gray-700">
76 {{ $repos := index $.Repos . }}
77 {{ range $repos }}
78 <div class="flex gap-2 items-center">
79 {{ i "book-marked" "size-4" }}
80 <a href="/{{ resolve .Did }}/{{ .Name }}">
81 {{ .Name }}
82 </a>
83 </div>
84 {{ else }}
85 <div class="text-gray-500 dark:text-gray-400">
86 No repositories configured yet.
87 </div>
88 {{ end }}
89 </div>
90 </div>
91 {{ end }}
92{{ end }}
93
94{{ define "deleteButton" }}
95 <button
96 class="btn text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300 gap-2 group"
97 title="Delete knot"
98 hx-delete="/settings/knots/{{ .Domain }}"
99 hx-swap="outerHTML"
100 hx-confirm="Are you sure you want to delete the knot '{{ .Domain }}'?"
101 hx-headers='{"shouldRedirect": "true"}'
102 >
103 {{ i "trash-2" "w-5 h-5" }}
104 <span class="hidden md:inline">delete</span>
105 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
106 </button>
107{{ end }}
108
109
110{{ define "retryButton" }}
111 <button
112 class="btn gap-2 group"
113 title="Retry knot verification"
114 hx-post="/settings/knots/{{ .Domain }}/retry"
115 hx-swap="none"
116 hx-headers='{"shouldRefresh": "true"}'
117 >
118 {{ i "rotate-ccw" "w-5 h-5" }}
119 <span class="hidden md:inline">retry</span>
120 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
121 </button>
122{{ end }}
123
124
125{{ define "removeMemberButton" }}
126 {{ $root := index . 0 }}
127 {{ $member := index . 1 }}
128 {{ $memberHandle := resolve $member }}
129 <button
130 class="btn text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300 gap-2 group"
131 title="Remove member"
132 hx-post="/settings/knots/{{ $root.Registration.Domain }}/remove"
133 hx-swap="none"
134 hx-vals='{"member": "{{$member}}" }'
135 hx-confirm="Are you sure you want to remove {{ $memberHandle }} from this knot?"
136 >
137 {{ i "user-minus" "w-4 h-4" }}
138 remove
139 {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
140 </button>
141{{ end }}
142
143