docs(admin): dashboard page — stats, watcher, Quick Actions, scan panel
Second page of the admin tree. Documents the four-card stats grid with what each number actually counts (instance-wide totals; Books = every media item including podcast episodes), the File Watcher card's data source (/api/scanner/watch/status, armed by Auto-Scan) and its zero-libraries meaning, Force Rescan All Libraries with its real mechanics (one job per library, skip-on-active, backfill tool vs. routine shallow refresh), and the Scanning panel's live progress + Cancel all scans. Links only to pages that exist (scanning.md); the Settings reference stays prose until that page lands. The real-tree nav test's Administration assertion loosens further: guide leads, everything else strictly follows usabilityOrder — durable across the remaining page landings. Also fixes the amend this commit replaces: its first version briefly carried a forward link to the unwritten settings.md (caught by the link gate, now removed) — the gate worked; the && chain around go test let the bad commit through, which is exactly why this amend exists.
This commit is contained in:
1 parent
89fc479bdb
commit
ed550fa914
2 files changed
+76
-4
No files matched your search
@@ -243,18 +243,18 @@ func TestBuildNavigationUsabilityOrder(t *testing.T) {
|
||||
}
|
||||
|
||||
// Administration grows as its pages are written; pin its shape, not
|
||||
// its size: the guide leads, Libraries follows, and every other item
|
||||
// its size: the guide leads (pinned landing), and every other item
|
||||
// must appear in usabilityOrder's declared relative order.
|
||||
admin := find("Administration")
|
||||
if len(admin.Items) < 2 || admin.Items[0].Title != "Admin Guide" || admin.Items[1].Title != "Libraries" {
|
||||
t.Fatalf("Administration must lead with Admin Guide then Libraries, got %+v", admin.Items)
|
||||
if len(admin.Items) < 1 || admin.Items[0].Title != "Admin Guide" {
|
||||
t.Fatalf("Administration must lead with the Admin Guide, got %+v", admin.Items)
|
||||
}
|
||||
pos := map[string]int{}
|
||||
for i, p := range usabilityOrder["Administration"] {
|
||||
pos[docURL(p)] = i
|
||||
}
|
||||
last := -1
|
||||
for _, item := range admin.Items[2:] {
|
||||
for _, item := range admin.Items[1:] {
|
||||
r, ok := pos[item.URL]
|
||||
if !ok {
|
||||
t.Errorf("Administration item %q (%s) is not in usabilityOrder", item.Title, item.URL)
|
||||
|
||||
Reference in new issue
Block a user