forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
1{{ define "title" }}{{ .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 "sshKeysSettings" . }} 14 </div> 15 </section> 16 </div> 17{{ end }} 18 19{{ define "sshKeysSettings" }} 20 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-center"> 21 <div class="col-span-1 md:col-span-2"> 22 <h2 class="text-sm pb-2 uppercase font-bold">SSH Keys</h2> 23 <p class="text-gray-500 dark:text-gray-400"> 24 SSH public keys added here will be broadcasted to knots that you are a member of, 25 allowing you to push to repositories there. 26 </p> 27 </div> 28 <div class="col-span-1 md:col-span-1 md:justify-self-end"> 29 {{ template "addKeyButton" . }} 30 </div> 31 </div> 32 <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"> 33 {{ range .PubKeys }} 34 {{ template "user/settings/fragments/keyListing" (list $ .) }} 35 {{ else }} 36 <div class="flex items-center justify-center p-2 text-gray-500"> 37 no keys added yet 38 </div> 39 {{ end }} 40 </div> 41{{ end }} 42 43{{ define "addKeyButton" }} 44 <button 45 class="btn flex items-center gap-2" 46 popovertarget="add-key-modal" 47 popovertargetaction="toggle"> 48 {{ i "plus" "size-4" }} 49 add key 50 </button> 51 <div 52 id="add-key-modal" 53 popover 54 class="bg-white w-full md:w-96 dark:bg-gray-800 p-4 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"> 55 {{ template "addKeyModal" . }} 56 </div> 57{{ end}} 58 59{{ define "addKeyModal" }} 60<form 61 hx-put="/settings/keys" 62 hx-indicator="#spinner" 63 hx-swap="none" 64 class="flex flex-col gap-2" 65> 66 <p class="uppercase p-0">ADD SSH KEY</p> 67 <p class="text-sm text-gray-500 dark:text-gray-400">SSH keys allow you to push to repositories in knots you're a member of.</p> 68 <input 69 type="text" 70 id="key-name" 71 name="name" 72 required 73 placeholder="key name" 74 class="w-full dark:bg-gray-700 dark:text-white dark:border-gray-600 dark:placeholder-gray-400" 75 /> 76 <textarea 77 type="text" 78 id="key-value" 79 name="key" 80 required 81 placeholder="ssh-rsa AAAAB3NzaC1yc2E..." 82 class="w-full dark:bg-gray-700 dark:text-white dark:border-gray-600 dark:placeholder-gray-400"></textarea> 83 <div class="flex gap-2 pt-2"> 84 <button 85 type="button" 86 popovertarget="add-key-modal" 87 popovertargetaction="hide" 88 class="btn w-1/2 flex items-center gap-2 text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300" 89 > 90 {{ i "x" "size-4" }} cancel 91 </button> 92 <button type="submit" class="btn w-1/2 flex items-center"> 93 <span class="inline-flex gap-2 items-center">{{ i "plus" "size-4" }} add</span> 94 <span id="spinner" class="group"> 95 {{ i "loader-circle" "ml-2 w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} 96 </span> 97 </button> 98 </div> 99 <div id="settings-keys" class="text-red-500 dark:text-red-400"></div> 100</form> 101{{ end }}