From 2e24ce00cf75eb0d68e804a754d8a5df77a59350 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Mon, 23 Mar 2026 22:37:58 -0400 Subject: [PATCH] feat: update bookshelf template with unified search UI - Change search box to use /api/media-items/search endpoint (was /filtered) - Add autocomplete to all 4 text filters: author, genre, series, language - Add series and language filters (were missing) - Add datalist elements for autocomplete dropdowns - Change filter triggers to Enter key instead of instant search - Preserve existing sort dropdown (all 5 options: title ASC/DESC, author ASC/DESC, created_at ASC/DESC, page_count ASC/DESC) - Preserve Save Filter button and modal - Preserve Load Filter button and dropdown - Preserve Clear Filters button - Update pagination to use /search endpoint - Add Alpine.js event handlers for dropdown population (@input.debounce.300ms) All filter inputs include hidden filter-form via hx-include for combined searches. --- templates/bookshelf.templ | 101 +++++++++++++++++++++++------------ templates/bookshelf_templ.go | 18 +++---- 2 files changed, 77 insertions(+), 42 deletions(-) diff --git a/templates/bookshelf.templ b/templates/bookshelf.templ index 814df43..63bed19 100644 --- a/templates/bookshelf.templ +++ b/templates/bookshelf.templ @@ -75,40 +75,32 @@ templ BookShelf( type="text" placeholder="Search all fields..." hx-get="/api/media-items/search" - hx-trigger="keyup[key=='Enter'] from:#search-form, keyup changed delay:500ms" + hx-trigger="keyup[key=='Enter'] from:#filter-form, keyup changed delay:500ms" hx-target="#books-grid" hx-include="#filter-form, #library-select" /> -
-
- - - - -
+ +
- +
+ +
+ + + +
+ +
+ + +
@@ -139,7 +174,7 @@ templ BookShelf( style="background-color: var(--bg-primary); color: var(--text-primary); border-color: var(--border);" hx-get="/api/media-items/search" hx-target="#books-grid" - hx-trigger="change" + hx-trigger="keyup[key=='Enter'] from:#filter-form" hx-include="#filter-form" />
@@ -171,7 +206,7 @@ templ BookShelf( Has Cover - +
- +
- +
- +
- +
- +