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