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