John O'Keefe
cd119a74da
feat(admin): purge-archived endpoint with an archived-items banner
...
Bulk escape hatch for archived rows (files missing from disk for 2+
scans) so a mass external deletion never has to wait out the retention
window or be clicked away row by row:
- POST /api/media-items/purge-archived (admin only) hard-deletes all
archived items and returns the purged count; reading history goes with
the rows, so the call is confirmed in the UI first.
- The library admin page shows an 'Archived items: N' card (only when
non-zero) with a Purge Archived Now button that calls the endpoint,
toasts the result, and reloads.
- Frontend admin JS exposes window.purgeArchivedItems following the
existing localStorage-bearer-token pattern.
2026-09-12 17:50:24 -04:00
..
2026-08-14 08:52:33 -04:00
2026-08-14 08:52:33 -04:00
2026-09-12 17:50:24 -04:00
2026-09-12 17:50:24 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-05 16:45:02 -04:00
2026-08-05 16:45:02 -04:00
2026-09-12 14:22:38 -04:00
2026-09-12 14:22:38 -04:00
2026-09-12 14:21:42 -04:00
2026-09-12 14:21:42 -04:00
2026-05-24 21:20:24 -04:00
2026-03-27 15:52:02 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-06 11:35:14 -04:00
2026-08-06 11:35:14 -04:00
2026-08-10 13:48:06 -04:00
2026-08-10 13:48:06 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:48:06 -04:00
2026-08-10 13:48:06 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 14:46:13 -04:00
2026-08-10 14:46:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-05 16:45:02 -04:00
2026-08-05 16:45:02 -04:00
2026-08-14 08:52:33 -04:00
2026-08-14 08:52:33 -04:00
2026-08-06 14:48:48 -04:00
2026-08-06 14:48:48 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-06 08:24:54 -04:00
2026-08-06 08:24:54 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-05 16:45:02 -04:00
2026-08-05 16:45:02 -04:00
2026-08-05 16:45:02 -04:00
2026-08-05 16:45:02 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-09-09 14:52:30 -04:00
2026-09-09 14:52:30 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-05 16:45:02 -04:00
2026-08-05 16:45:02 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-10 13:43:13 -04:00
2026-08-05 16:03:07 -04:00
2026-05-24 21:20:24 -04:00
2026-05-10 16:13:21 -04:00
2026-08-10 08:03:02 -04:00
2026-08-10 13:48:06 -04:00
2026-08-10 13:48:06 -04:00
2026-08-10 13:43:32 -04:00
2026-08-10 13:43:32 -04:00