soulsync/api/video
BoulderBadgeDad c450fa1f9a video detail: 4 season-nav views + view toggle, real Watchlist, Missing filter
Season selection is now switchable via a view toggle (persisted): poster RAIL
(scrollable season cards w/ coverage), TIMELINE band (segments sized by episode
count, filled by owned), TABS (pills), and the LIST dropdown. All drive the same
selection; episodes fade in on change.

- Watchlist button is now REAL: toggles shows.monitored via POST /api/video/monitor
  (set_monitored), reflects 'In Watchlist' state. show_detail returns monitored.
- 'Get Missing' + a 'Missing only' toolbar toggle filter the episode list to
  unowned episodes (actual downloading is the future acquisition subsystem).

Seam tests for the monitor endpoint + bad-input guards; shell hooks updated.
2026-06-14 17:05:51 -07:00
..
__init__.py video: detail-page data layer (show tree + movie) + backdrop proxy 2026-06-14 15:52:22 -07:00
dashboard.py video Tools: server-prefix the scan title (Plex/Jellyfin Library Scan) 2026-06-14 07:47:40 -07:00
detail.py video detail: 4 season-nav views + view toggle, real Watchlist, Missing filter 2026-06-14 17:05:51 -07:00
enrichment.py video settings: per-connection Test button (mirrors music's testConnection) 2026-06-14 12:26:15 -07:00
libraries.py video side: library mapping backend (pick Movies/TV library) 2026-06-14 00:24:01 -07:00
library.py video Library: server-side paging + sort/filter + card badges (music parity) 2026-06-14 08:57:25 -07:00
poster.py video: detail-page data layer (show tree + movie) + backdrop proxy 2026-06-14 15:52:22 -07:00
scan.py video Tools: match music Database Updater (stats, cancel, real progress) 2026-06-14 07:35:57 -07:00