New mobile layout, new regular screen, added the ability to edit directory names from settings

This commit is contained in:
2026-08-22 08:37:25 -04:00
parent fa00a0b0c4
commit c92268e04c
4 changed files with 370 additions and 47 deletions
+26
View File
@@ -97,6 +97,32 @@ built locally from a private Gitea repo rather than pulling the upstream image.
official palette (nordtheme.com). Anyone with `theme: "dainty"` already saved
in `settings.json` falls back gracefully to the `dark` default on next load.
## Mobile UI overhaul + in-app renaming (this session)
- **Fixed the mobile text-overlap bug** — `.lesson-item`/`.tree-header` in
`course_dashboard.html` had no `min-width: 0` or truncation on their flex
children, so long course/lesson names (especially scene-release-style dotted
names like `Udemy.crash.course.electronics...Mimir` with zero whitespace to
wrap on) would overflow and visually overlap neighboring text on narrow
screens. Fixed with `min-width:0` + ellipsis truncation (desktop/tablet) and
a `@media (max-width: 600px)` block that stacks title/metadata into separate
lines with `overflow-wrap: break-word` (the dotted-name case needed this
specifically — plain `white-space: normal` doesn't create a break opportunity
in a string with no spaces).
- **Library browser redesigned** — replaced the nested-indent accordion
(`AI``ChatGPT` → course, each level eating horizontal space) with a
single-level drill-down + breadcrumb (`Library / AI / ChatGPT`), the standard
mobile file-browser pattern. Tapping a folder now replaces the list instead
of nesting under it. In-course lesson tree keeps its old expand-in-place
behavior (shallower, wasn't the reported problem).
- **Rename courses/folders from Settings** — "Curate Library" is now
"Manage Library": each row gets a ✏️ button alongside Hide/Show that renames
the directory in place on disk via a new `POST /api/rename-path`. Handles
path-traversal/collision validation, and rebases any `hidden_paths.json` /
`recent_views.json` entries nested under the renamed path (progress files
need no rebasing — they live inside the directory and are keyed relative to
it). If you rename your *currently loaded* course's folder, the app resets
to the library view rather than serving a stale path.
## Known limitations still open
- App is unauthenticated by design (matches upstream) — settings and hidden-path
curation apply app-wide, not per-browser/per-user.