Exclude course/item leaves from destination picker; ease new-folder UX

The destination picker (Sort Unsorted, Manage Library Move) was
listing individual course/item folders as pickable destinations
whenever they held content course detection doesn't recognize as
video/audio - ebooks, audiobooks in unsupported formats, etc. Add a
leaf-item check scoped to the picker's own category index so these no
longer show up, without touching the shared course-detection heuristic
used elsewhere (Library browsing, search, stats).

Also replace "Create new folder"'s single free-text path field with a
parent-folder picker plus a plain new-folder-name field and a live
"Will create: X/Y" preview, so the resulting path is confirmed before
applying instead of hand-typed blind.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-24 13:13:09 -04:00
co-authored by Claude Sonnet 5
parent bcd1734c94
commit 62bb5e1318
3 changed files with 141 additions and 42 deletions
+12 -4
View File
@@ -101,10 +101,18 @@ silently stay blank instead of erroring.
existing folder, a suggested new subfolder under a broader category match,
or "needs review" (unchecked by default) when nothing overlaps at all.
Every row has a folder-picker dropdown (listing every real category in the
library, plus "+ Create new folder…" to type a brand-new path) so a wrong
or low-confidence guess is one click to correct, and a name field to
rename the course's folder in the same move. Nothing on disk moves until
you review and hit Apply. Matching ignores common noise (e-learning
library, plus "+ Create new folder…") so a wrong or low-confidence guess
is one click to correct, and a name field to rename the course's folder
in the same move. Creating a new folder means picking its parent from a
dropdown and typing just the new folder's own name, with a live "Will
create: X/Y" preview so the resulting path is confirmed before applying -
the same picker Manage Library's Move action uses. The picker excludes
actual course/item folders, not just organizational ones - including a
leaf folder holding a single non-video/audio file (an ebook, an
audiobook in a format this app doesn't play, etc.) that Library
browsing's own course detection wouldn't catch either, since there's no
video/audio file to key off. Nothing on disk moves until you review and
hit Apply. Matching ignores common noise (e-learning
platform names, release/distribution-group tags, dates) via a stopword
list, and beyond that treats a match against a folder's own deliberate
name as always stronger evidence than a word only borrowed from a