Fifth admin page and the section's hub. Documents library creation (name/description/type — type fixed at creation, verified in the edit modal), the card's Force Rescan + Manage controls, and the full panel: folders (add via Browse or manual path, shallow per-folder scan, removal-unregisters-only semantics verified in DeleteLibraryFolder — files and items untouched, archive lifecycle governs the rest; podcast roots refuse hand scans), User Access visibility checkboxes (default- allow, DB-enforced), the processing-issues link, and Delete Library's exact destructive scope (records + reading data gone, files on disk untouched). Ends with the at-a-glance scan table linking scanning.md. Adds the Libraries backlinks to the processing-issues and archived pages. Glossary gains Create Library, Manage, Edit Details, Delete Library, View Archived, Purge Archived Now, Browse, User Access.
63 lines
2.7 KiB
Markdown
63 lines
2.7 KiB
Markdown
<!-- Ground truth: templates/admin_processing_issues.templ (stats cards,
|
|
Retry all queue, per-issue Retry/Dismiss, severity badges),
|
|
internal/handlers/processing_issues.go (RetryProcessingIssue — success
|
|
closes the issue, failure returns the real error; resolve path),
|
|
internal/router/library.go (issue routes), the deliberately-not-a-
|
|
library-rescan design comment in the template. Re-verify against these
|
|
when the page changes. -->
|
|
|
|
# Processing Issues
|
|
|
|
Processing Issues is each library's ledger of items the scanner could not
|
|
fully process — a corrupt file, an unsupported format, metadata that
|
|
wouldn't parse. It is per-library: you reach it from that library's panel
|
|
on the [Libraries](libraries.md) page (the link only appears when the
|
|
library has issues).
|
|
|
|
## What's on the page
|
|
|
|
Three count cards — **Errors**, **Warnings**, **Info** — show how many
|
|
open issues sit at each severity (a card only appears when that severity
|
|
has issues). Below them, one card per issue showing:
|
|
|
|
- the item's **title** and a plain-language **description** of what went
|
|
wrong
|
|
- **Type**, **Format**, **File** (full path), and **Library** type
|
|
- a severity badge: red for errors, amber for warnings, neutral for info
|
|
|
|
## Fixing an issue
|
|
|
|
### Retry
|
|
|
|
Runs that one item back through the scanner. This is a per-item scan —
|
|
the item's file is re-read and re-extracted exactly like a book-page
|
|
[Rescan](scanning.md), not a pass over the library. If it succeeds, the
|
|
issue closes itself; if it fails again, the page shows the *real* error,
|
|
so you know why it still fails instead of staring at a stale complaint.
|
|
|
|
### Retry all
|
|
|
|
Queues every issue currently on the page and works through them **one at
|
|
a time** — the button shows progress as "done / total" while the queue
|
|
drains. This is deliberately not a whole-library scan: fixing a handful of
|
|
bad files never re-reads the good ones. Per-issue **Retry** buttons are
|
|
disabled while the queue is running.
|
|
|
|
When the queue finishes, the page refreshes itself from the server —
|
|
closed issues disappear, still-failing ones stay with fresh error text.
|
|
|
|
### Dismiss
|
|
|
|
Closes an issue without re-processing — for warnings and info items you've
|
|
looked at and judged fine (a confirm dialog guards the click). **Errors
|
|
cannot be dismissed**: they must be fixed and successfully retried. The
|
|
Dismiss button simply doesn't exist on an error card.
|
|
|
|
## How issues get here and leave
|
|
|
|
The scanner creates an issue whenever it fails to process an item during a
|
|
scan. Issues leave the page three ways: a successful **Retry** (or any
|
|
later scan that processes the item cleanly), a **Dismiss** you chose for a
|
|
warning or info item, or the file's problem being fixed on disk and the
|
|
next scan handling the item cleanly.
|