Removal controls for series, seasons and episodes #175

Closed
opened 2026-08-24 16:13:22 +01:00 by naps62-yolo · 0 comments
Owner

None of the removal paths are reachable from the UI below a movie.

Depends on: #174
Depends on: #173

Series. DELETE /api/series/{id} already exists and already unlinks files —
the series detail page simply never exposes it. Give it the same treatment movies
have: the arming panel removePanel builds for a movie, showing the file count
and total size, the library folder path, and the warning that the torrent keeps
seeding until its tracker rule clears. Generalise the movie implementation rather
than copying it; the two differ only in which endpoint they call and how they
count files, and a second copy will drift.

On success it navigates away to the library, as the movie path does once its
parent route is gone.

Seasons and episodes. A control on each season header and each episode row
calling the corresponding endpoint from #174. Word it for what it does — the files
go and the episodes stop being wanted, the season itself stays listed. It must not
read as "delete this season", because the season remains.

Both are destructive and both need the same arm-then-confirm shape the settings
page and the movie panel already use. Do not add a third confirmation idiom.

Sequenced after #173 deliberately: both change web/src/main.ts around the series
detail view, and running them together produced conflicts last time.

Goes through the impeccable skill. Drive the browser with agent-browser and
look at the result — a destructive control that is easy to hit by accident is a
failure of this issue even if it works.

Non-goals: no bulk "remove every season" control, and no change to the endpoints
themselves.

None of the removal paths are reachable from the UI below a movie. Depends on: #174 Depends on: #173 **Series.** `DELETE /api/series/{id}` already exists and already unlinks files — the series detail page simply never exposes it. Give it the same treatment movies have: the arming panel `removePanel` builds for a movie, showing the file count and total size, the library folder path, and the warning that the torrent keeps seeding until its tracker rule clears. Generalise the movie implementation rather than copying it; the two differ only in which endpoint they call and how they count files, and a second copy will drift. On success it navigates away to the library, as the movie path does once its parent route is gone. **Seasons and episodes.** A control on each season header and each episode row calling the corresponding endpoint from #174. Word it for what it does — the files go and the episodes stop being wanted, the season itself stays listed. It must not read as "delete this season", because the season remains. Both are destructive and both need the same arm-then-confirm shape the settings page and the movie panel already use. Do not add a third confirmation idiom. Sequenced after #173 deliberately: both change `web/src/main.ts` around the series detail view, and running them together produced conflicts last time. Goes through the `impeccable` skill. Drive the browser with `agent-browser` and look at the result — a destructive control that is easy to hit by accident is a failure of this issue even if it works. Non-goals: no bulk "remove every season" control, and no change to the endpoints themselves.
naps62-yolo added this to the Removal and navigation milestone 2026-08-24 16:13:22 +01:00
naps62-yolo added the area/webphase/6-tvdifficulty/moderatetype/feature labels 2026-08-24 16:13:22 +01:00
naps62-yolo added a new dependency 2026-08-24 16:13:22 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: yolo/arr#175