forked from tangled.org/core
Monorepo for Tangled — https://tangled.org
1{{ define "title" }}spindles{{ end }} 2 3{{ define "content" }} 4<div class="px-6 py-4 flex items-center justify-between gap-4 align-bottom"> 5 <h1 class="text-xl font-bold dark:text-white">Spindles</h1> 6 <span class="flex items-center gap-1"> 7 {{ i "book" "w-3 h-3" }} 8 <a href="https://tangled.org/@tangled.org/core/blob/master/docs/spindle/hosting.md">docs</a> 9 </span> 10</div> 11 12<section class="bg-white dark:bg-gray-800 p-6 rounded relative w-full mx-auto drop-shadow-sm dark:text-white"> 13 <div class="flex flex-col gap-6"> 14 {{ block "about" . }} {{ end }} 15 {{ block "list" . }} {{ end }} 16 {{ block "register" . }} {{ end }} 17 </div> 18</section> 19{{ end }} 20 21{{ define "about" }} 22<section class="rounded flex items-center gap-2"> 23 <p class="text-gray-500 dark:text-gray-400"> 24 Spindles are small CI runners. 25 </p> 26</section> 27{{ end }} 28 29{{ define "list" }} 30 <section class="rounded w-full flex flex-col gap-2"> 31 <h2 class="text-sm font-bold py-2 uppercase dark:text-gray-300">your spindles</h2> 32 <div class="flex flex-col rounded border border-gray-200 dark:border-gray-700 w-full"> 33 {{ range $spindle := .Spindles }} 34 {{ template "spindles/fragments/spindleListing" . }} 35 {{ else }} 36 <div class="flex items-center justify-center p-2 border-b border-gray-200 dark:border-gray-700 text-gray-500"> 37 no spindles registered yet 38 </div> 39 {{ end }} 40 </div> 41 <div id="operation-error" class="text-red-500 dark:text-red-400"></div> 42 </section> 43{{ end }} 44 45{{ define "register" }} 46 <section class="rounded w-full lg:w-fit flex flex-col gap-2"> 47 <h2 class="text-sm font-bold py-2 uppercase dark:text-gray-300">register a spindle</h2> 48 <p class="mb-2 dark:text-gray-300">Enter the hostname of your spindle to get started.</p> 49 <form 50 hx-post="/spindles/register" 51 class="max-w-2xl mb-2 space-y-4" 52 hx-indicator="#register-button" 53 hx-swap="none" 54 > 55 <div class="flex gap-2"> 56 <input 57 type="text" 58 id="instance" 59 name="instance" 60 placeholder="spindle.example.com" 61 required 62 class="flex-1 w-full dark:bg-gray-700 dark:text-white dark:border-gray-600 dark:placeholder-gray-400 px-3 py-2 border rounded" 63 > 64 <button 65 type="submit" 66 id="register-button" 67 class="btn rounded flex items-center py-2 dark:bg-gray-700 dark:text-white dark:hover:bg-gray-600 group" 68 > 69 <span class="inline-flex items-center gap-2"> 70 {{ i "plus" "w-4 h-4" }} 71 register 72 </span> 73 <span class="pl-2 hidden group-[.htmx-request]:inline"> 74 {{ i "loader-circle" "w-4 h-4 animate-spin" }} 75 </span> 76 </button> 77 </div> 78 79 <div id="register-error" class="dark:text-red-400"></div> 80 </form> 81 82 </section> 83{{ end }}