soulsync/webui/static/video
BoulderBadgeDad 68582af374 video Library: server-side paging + sort/filter + card badges (music parity)
Handles big libraries (your ~8500 movies) like music does instead of rendering
everything at once.
- DB: sort_title populated article-aware on upsert ('The Matrix' files under M);
  query_library(kind, search, letter, sort, status, page, limit) does all
  filtering/sorting/paging in SQL and returns music's pagination shape
  {page,total_pages,total_count,has_prev,has_next} + badge fields (resolution,
  owned/episode counts).
- GET /api/video/library now takes those params (per kind) instead of dumping
  everything.
- Library page: 75/page with ← Previous / Page X of Y / Next → (music's exact
  controls/classes), Sort (Title/Year/Recently Added) + Owned/Wanted filter,
  server-side search + A–Z. Cards gain a resolution chip (4K/1080p/…) and the
  owned/wanted meta. Still not clickable.
124 tests green.
2026-06-14 08:57:25 -07:00
..
video-dashboard.js video side: Tools page + scan controls on dashboard (3 modes) 2026-06-13 23:34:28 -07:00
video-library.js video Library: server-side paging + sort/filter + card badges (music parity) 2026-06-14 08:57:25 -07:00
video-scan.js video Tools: rehydrate scan state on page refresh (parity with music) 2026-06-14 07:59:44 -07:00
video-settings.js video settings: library mapping saves on change (match music), drop button 2026-06-14 00:29:53 -07:00
video-side.css video Library: server-side paging + sort/filter + card badges (music parity) 2026-06-14 08:57:25 -07:00
video-side.js video side: Settings shows the real music settings page (identically) 2026-06-14 00:17:00 -07:00