soulsync/webui/static/video
BoulderBadgeDad e24e9bfe1e Video get-modal: TV episode selector (evolved Download Discography) + Download btn
Shows aren't wishlist items — episodes are. So the show modal now grows an
inline season/episode selector below the overview:
- Collapsible season cards (season-level select-all + 'N missing · M eps').
- Per-episode rows with three states: owned (locked ✓, 'In library'),
  upcoming (locked ◷, air date — these belong to the watchlist), and
  missing-aired (accent checkbox, PRE-SELECTED).
- 'Missing only' toggle (default on) hides owned to cut noise; live selected
  count; season checkboxes go indeterminate as you pick episodes.

Footer is now [count] · [Full page] · [Download N] · [Add N to Wishlist].
Movies keep a simple [Download] · [Add to Wishlist]. Add/Download are visual
stubs (toast the count) — the curated video_wishlist + download path come later.

Data is the existing show_detail seasons/episodes (owned + air_date).
2026-06-16 11:30:58 -07:00
..
video-calendar.js Video Calendar: EPG-style guide with a shared time axis + premium polish 2026-06-16 00:35:35 -07:00
video-dashboard.js video dashboard: Library card is a live scan tool (parity with music) 2026-06-14 09:28:14 -07:00
video-detail.js Video detail page: follow control uses the new curated watchlist 2026-06-16 10:44:59 -07:00
video-enrichment-manager.js video: coverage-card click re-queues failed matches (match music manager) 2026-06-15 14:27:25 -07:00
video-enrichment.js Video side: own server connection (Plex/Jellyfin), music-style picker, isolated 2026-06-15 16:42:22 -07:00
video-get-modal.js Video get-modal: TV episode selector (evolved Download Discography) + Download btn 2026-06-16 11:30:58 -07:00
video-library.js Video: airing shows get BOTH the watchlist eye AND the get/download button 2026-06-16 11:07:53 -07:00
video-person.js Video: wire the eye/get button onto every card surface 2026-06-16 10:41:07 -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-search.js Video: wire the eye/get button onto every card surface 2026-06-16 10:41:07 -07:00
video-settings.js Video side: own server connection (Plex/Jellyfin), music-style picker, isolated 2026-06-15 16:42:22 -07:00
video-side.css Video get-modal: TV episode selector (evolved Download Discography) + Download btn 2026-06-16 11:30:58 -07:00
video-side.js video: fix back-button loop when a 'More Like This' item is owned 2026-06-15 12:18:05 -07:00
video-watchlist-btn.js Watchlist eye: confirm before removing (the standard yes/no dialog) 2026-06-16 09:29:31 -07:00
video-watchlist.js Video: airing shows get BOTH the watchlist eye AND the get/download button 2026-06-16 11:07:53 -07:00
video-worker-orbs.js video: promote OMDb to a full 3rd enrichment worker (parity with TMDB/TVDB) 2026-06-14 23:07:35 -07:00