···6464{{ end }}
65656666{{ define "default-knot" }}
6767- <section class="rounded w-full flex flex-col gap-2">
6868- <h2 class="text-sm font-bold py-2 uppercase dark:text-gray-300">default knot</h2>
6969- <select id="default-knot" name="default-knot"
7070- class="p-1 max-w-64 border border-gray-200 bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700"
7171- hx-post="/profile/default-knot"
7272- hx-swap="none"
7373- name="default-knot">
7474- <option value="" >
7575- Choose a default Knot
7676- </option>
7777- <option value="knot1.tangled.sh" {{if eq $.DefaultKnot "knot1.tangled.sh"}}selected{{end}} >
7878- knot1.tangled.sh
7979- </option>
8080- {{ range $registration := .Registrations }}
8181- <option value="{{ .Domain }}" class="py-1" {{if eq $.DefaultKnot .Domain}}selected{{end}}>
8282- {{ .Domain }}
6767+<section class="rounded w-full flex flex-col gap-2">
6868+ <h2 class="text-sm font-bold py-2 uppercase dark:text-gray-300">default knot</h2>
6969+ <form hx-post="/profile/default-knot" class="col-span-1 md:col-span-1 md:justify-self-end group flex gap-2 items-stretch">
7070+ <select
7171+ id="default-knot"
7272+ name="default-knot"
7373+ required
7474+ class="p-1 max-w-64 border border-gray-200 bg-white dark:bg-gray-800 dark:text-white dark:border-gray-700">
7575+ {{/* For some reason, we can't use an empty string in a <select> in all scenarios unless it is preceded by a disabled select?? No idea, could just be a Firefox thing? */}}
7676+ <option value="[[none]]" class="py-1" {{ if not $.DefaultKnot }}selected{{ end }}>
7777+ Choose a default knot
7878+ </option>
7979+ {{ range $.AvailableKnots }}
8080+ <option value="{{ . }}" class="py-1" {{ if eq . $.DefaultKnot }}selected{{ end }}>
8181+ {{ . }}
8382 </option>
8483 {{ end }}
8584 </select>
8686- </section>
8585+ <button class="btn flex gap-2 items-center" type="submit">
8686+ {{ i "check" "size-4" }}
8787+ {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }}
8888+ </button>
8989+ </form>
9090+</section>
8791{{ end }}
88928993{{ define "register" }}
+9-1
appview/state/profile.go
···633633 return
634634 }
635635636636- profile.DefaultKnot = r.Form.Get("default-knot")
636636+ defaultKnot := r.Form.Get("default-knot")
637637+638638+ if defaultKnot == "[[none]]" { // see pages/templates/knots/index.html for more info on why we use this value
639639+ defaultKnot = ""
640640+ }
641641+642642+ profile.DefaultKnot = defaultKnot
637643638644 tx, err := s.db.BeginTx(r.Context(), nil)
639645 if err != nil {
···646652 log.Println("failed to update profile", err)
647653 return
648654 }
655655+656656+ s.pages.HxRefresh(w)
649657}
650658651659func (s *State) updateProfile(profile *models.Profile, w http.ResponseWriter, r *http.Request) {