added delete option
This commit is contained in:
@@ -41,6 +41,35 @@ This changelog follows [Keep a Changelog](https://keepachangelog.com/) principle
|
||||
|
||||
### Added
|
||||
|
||||
- **Delete Anime Feature** — Right-click on any anime card and select
|
||||
"Delete Anime" to remove a series. Three modes are available:
|
||||
database only, folder only, or both. A typed-confirmation
|
||||
(`delete`) is required to prevent accidental deletions. The
|
||||
operation is broadcast via WebSocket so all connected clients
|
||||
remove the card in real-time. Path traversal protection prevents
|
||||
folder deletion outside the anime base directory.
|
||||
- `DELETE /api/anime/{key}` endpoint (`src/server/api/anime.py`)
|
||||
- `AnimeService.delete_series()` orchestrator
|
||||
(`src/server/services/anime_service.py`)
|
||||
- `broadcast_series_deleted()` WebSocket broadcast
|
||||
(`src/server/services/websocket_service.py`)
|
||||
- `DeleteSeriesRequest` / `DeleteSeriesResult` Pydantic models
|
||||
(`src/server/models/anime.py`)
|
||||
- Frontend modal with typed confirmation
|
||||
(`src/server/web/static/js/index/delete-modal.js`)
|
||||
- Right-click "Delete Anime" context menu item
|
||||
(`src/server/web/static/js/index/context-menu.js`)
|
||||
- `SERIES_DELETED` WebSocket event handling
|
||||
(`src/server/web/static/js/index/socket-handler.js`)
|
||||
- `SeriesManager.removeSeries()` grid cleanup
|
||||
(`src/server/web/static/js/index/series-manager.js`)
|
||||
- Full test suite:
|
||||
`tests/unit/test_delete_anime_service.py`,
|
||||
`tests/api/test_delete_anime_endpoint.py`,
|
||||
`tests/frontend/test_delete_modal.py`,
|
||||
`tests/security/test_delete_anime_security.py`
|
||||
- Documentation: `Docs/DELETE_ANIME_FEATURE.md`
|
||||
|
||||
- **Anime Settings page** — renamed from "NFO Diagnostics". Right-click
|
||||
on any anime card → "Anime Settings" navigates to
|
||||
`/anime/settings?key=<series>`. The new page lets the user view and
|
||||
|
||||
Reference in New Issue
Block a user