diff options
| author | 2025-08-16 11:48:09 +0700 | |
|---|---|---|
| committer | 2025-08-16 11:48:09 +0700 | |
| commit | b1a1651ad7e7faf7a87aca8fea1cdad156f3606e (patch) | |
| tree | c6c635c6667505ac407c1c38c4485fd0f1e22d08 /views/pages/blog-catalogue.html | |
| parent | 27526553e9f1c7d97a4a035591cd144863a1f08b (diff) | |
| download | web-b1a1651ad7e7faf7a87aca8fea1cdad156f3606e.tar.gz web-b1a1651ad7e7faf7a87aca8fea1cdad156f3606e.zip | |
feat: clickable tags (to search explicitly one)v0.5.9
feat: show published time in client's timezone
feat: make 'ram' theme default
fix: show tags header in catalogue
Diffstat (limited to 'views/pages/blog-catalogue.html')
| -rw-r--r-- | views/pages/blog-catalogue.html | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/views/pages/blog-catalogue.html b/views/pages/blog-catalogue.html index 6c0f629..2b248c3 100644 --- a/views/pages/blog-catalogue.html +++ b/views/pages/blog-catalogue.html @@ -49,7 +49,7 @@ <div class="w-[0.5vh] border-r-[0.3vh] border-dotted border-main-dark bg-background-dark"></div> - <div hx-get="/api/v1/blog-search" hx-vals='{"lang": "{{ .Lang }}"}' hx-target="this" hx-swap="innerHTML" hx-trigger="load" hx-include=".tags-list" + <div hx-get="/api/v1/blog-search" hx-vals='js:{lang: "{{ .Lang }}", tz: clientTimeZone}' hx-target="this" hx-swap="innerHTML" hx-trigger="load" hx-include=".tags-list" class="blog-cards grow flex flex-col overflow-y-auto bg-background-light inset-shadow p-[2.4vmin]"> Loading... </div> @@ -57,8 +57,6 @@ {{ end }} {{ define "footer" }} -<script src="https://f003.backblazeb2.com/file/sayana-static/libs/htmx/2.0.6/htmx.min.js"></script> - <script> function selectAll() { const tagsContainers = document.querySelectorAll('form.tags-list'); @@ -120,6 +118,24 @@ window.history.pushState({}, '', url.toString()); } + function pickedTagSetHrefParams(tag) { + const url = new URL(window.location.href); + url.searchParams.delete('tags[]'); + url.searchParams.set('tags[]', tag); + + const tagsContainers = document.querySelectorAll('form.tags-list'); + tagsContainers.forEach(tagsContainer => { + const checkboxes = tagsContainer.querySelectorAll('input[type="checkbox"]'); + checkboxes.forEach(checkbox => { + checkbox.checked = false; + }); + chosenCheckbox = tagsContainer.querySelector(`#tag${tag}Checkbox`); + chosenCheckbox.checked = true; + }); + + window.history.pushState({}, '', url.toString()); + } + document.addEventListener('DOMContentLoaded', contextAll); </script> |