soulsync/webui/static/video
BoulderBadgeDad fba47e9665 video Library page: music-library visuals + posters + search + A-Z
Rebuilt the Library page to reuse the music library's exact look — no
reinvention, just new data:
- Same classes: .library-container, .library-artist-card grid, .alphabet-
  selector, .library-search-input, loading/empty states. Movies/Shows tab pill
  is the only video-specific bit.
- Real posters via a server-side proxy: GET /api/video/poster/<kind>/<id>
  streams the Plex/Jellyfin artwork (token stays server-side); cards fall back
  to an emoji on miss. list_movies/list_shows now expose has_poster (no raw
  server paths leaked).
- Client-side search + A-Z letter filter (article-aware) over the loaded set;
  cards are divs (not clickable yet, per request). Scan button in the header
  reuses the shared scan controller and reloads on done.
110 tests green.
2026-06-14 00:51:47 -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 page: music-library visuals + posters + search + A-Z 2026-06-14 00:51:47 -07:00
video-scan.js video side: reuse music styling for Tools + dashboard scan controls 2026-06-13 23:50:41 -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 page: music-library visuals + posters + search + A-Z 2026-06-14 00:51:47 -07:00
video-side.js video side: Settings shows the real music settings page (identically) 2026-06-14 00:17:00 -07:00