Decouple browse views from FTS

This commit is contained in:
Jordan Wages 2025-09-24 05:12:56 -05:00
commit d8ecf5f607
3 changed files with 40 additions and 106 deletions

View file

@ -3,7 +3,8 @@
mp3-com-meta-browser is a static single-page web app for exploring the salvaged mp3.com metadata catalog. All queries run entirely in the browser against a read-only SQLite database compiled to WebAssembly, so the site can be hosted on any static file server.
## Highlights
- Client-side full-text search (FTS5) across track titles, artists, albums, and genres.
- Client-side full-text search (FTS5) powers the dedicated track search overlay.
- Browse views query indexed base tables directly for predictable pagination (no FTS fan-out).
- Responsive Bulma-based UI with dedicated views for search, browse (artists, albums, years, genres), and dataset stats.
- Overlay detail panels for artists, albums, and tracks with keyboard navigation support.
- Zero server dependencies beyond serving static assets with HTTP range support.
@ -39,10 +40,12 @@ Add future static assets (icons, fonts, etc.) under `assets/`.
## Using the App
- **Search:** Free-text search with 250 ms debounce. Toggle between relevance and alphabetical sorting. Keyboard: `/` focuses search, `Enter` activates the highlighted row.
- **Browse Artists / Albums / Years / Genres:** Paginated listings with quick filters (artists leverage FTS prefix queries for fast prefix matching). Selecting an entry opens the corresponding overlay.
- **Browse Artists / Albums / Years / Genres:** Paginated listings with quick filters backed by indexed table queries (`artists`, `albums`, `tracks`). Selecting an entry opens the corresponding overlay.
- **Stats:** Summary cards pull from pre-computed counters in `site_stats` and link into browse views with preset filters.
- **Overlays:** Artist, album, and track overlays show detailed metadata. `Esc` closes the top overlay and focus returns to the invoker.
Only the Track Search overlay issues FTS queries. Browse views stay on indexed base tables so pagination remains predictable and light on resources.
## Keyboard & Accessibility Notes
- Global shortcuts: `/` for search, `Esc` to close overlays.
- Lists expose arrow navigation with `Enter` activation when focused.