diff --git a/templates/index.tmpl b/templates/index.tmpl index bbbe247..67716c4 100644 --- a/templates/index.tmpl +++ b/templates/index.tmpl @@ -161,9 +161,8 @@ a {

-
- - {{$selected := .SelectedCorpus}} {{range .Corpora}} {{if eq $selected .ID}} @@ -172,9 +171,7 @@ a { {{end}} {{end}} - - -
+
diff --git a/web/assets/main.js b/web/assets/main.js index cdeb0f8..e089073 100644 --- a/web/assets/main.js +++ b/web/assets/main.js @@ -479,9 +479,24 @@ class PoemSaver extends HTMLFormElement { } } +class CorpusPicker extends HTMLSelectElement { + connectedCallback() { + if (this.connected) { + return; + } + this.addEventListener("change", (e) => { + const params = new URLSearchParams(document.location.search); + params.set("corpus", this.value); + window.history.replaceState({}, '', `${location.pathname}?${params}`); + $("div[is=poem-lines]").regenerate(); + }); + } +} + const pinned = new CustomEvent("pinned", {bubbles: true}); const unpinned = new CustomEvent("unpinned", {bubbles: true}); const edited = new CustomEvent("edited", {bubbles: true}); +customElements.define("corpus-picker", CorpusPicker, { extends: "select" }); customElements.define("about-toggler", AboutToggler, { extends: "a" }); customElements.define("poem-saver", PoemSaver, { extends: "form" }); customElements.define("theme-toggler", ThemeToggler, { extends: "a" });