left4me/l4d2web/templates
mwiegand 2bba1f31d0
fix(files-overlay): post-deploy bug sweep + root-as-row UX
Three bugs surfaced in browser testing, plus one UX request:

1. The Uploads panel and the binary-mode editor sub-panels stayed
   visible after `el.hidden = true` because their `display: flex/grid`
   rules in components.css have the same specificity as the UA's
   `[hidden]{display:none}` and come later in cascade. Add a targeted
   `[hidden]!important` rule for the affected classes.

2. Clicking a folder toggle inside a `files` overlay did nothing.
   `file-tree.js` looked for `.file-tree-children` via
   `button.nextElementSibling`, but the files-overlay row template
   inserts a per-row action span between the toggle and the children
   div. Switch to `closest('.file-tree-row').querySelector(':scope >
   .file-tree-children')` so both row variants resolve correctly.

3. Pressing Enter on the new-folder dialog did nothing — the keydown
   handler was attached with `{once:true}` inside `openNewFolder`,
   so the first letter the user typed consumed the listener and Enter
   never fired. Move the listener to module init so it survives
   subsequent keystrokes and dialog reopenings.

UX: render the overlay root as a row inside the tree (label
"(overlay root)") rather than as a separate toolbar. The root row
carries the same `+ new file · + new folder · ⬇ zip` hover-action
column as every other folder row, so drop-on-row, hover-reveal, and
data-target-path semantics are uniform across the tree.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 19:46:19 +02:00
..
_job_table.html feat(l4d2-web): managed global map overlays with daily refresh 2026-05-08 08:05:14 +02:00
_overlay_build_status.html feat(l4d2-web): server + overlay detail — live-refresh via HTMX, restructured 2026-05-09 01:27:30 +02:00
_overlay_file_node.html feat(files-overlay): user-managed file content as a third overlay type 2026-05-09 18:59:32 +02:00
_overlay_file_tree.html feat(files-overlay): user-managed file content as a third overlay type 2026-05-09 18:59:32 +02:00
_overlay_item_table.html feat(l4d2-web): workshop overlay UI (routes + templates) 2026-05-07 16:50:54 +02:00
_server_actions.html feat(l4d2-web): server + overlay detail — live-refresh via HTMX, restructured 2026-05-09 01:27:30 +02:00
admin.html refactor(l4d2-web): detail-page UI — single panel, soft border, footer Delete 2026-05-09 01:26:57 +02:00
admin_jobs.html feat(l4d2-web): add job pages and cancellation 2026-05-06 15:05:13 +02:00
admin_users.html feat(l4d2-web): add admin landing and system pages 2026-05-06 12:09:36 +02:00
base.html feat(l4d2-web): overlay detail Files section with HTMX file tree + downloads 2026-05-08 20:16:25 +02:00
blueprint_detail.html feat(l4d2-web): blueprint rename moves to footer modal — matches overlay/server pattern 2026-05-09 01:37:29 +02:00
blueprints.html fix(l4d2-web): textareas — monospace font, consistent rows on blueprint forms 2026-05-08 20:52:12 +02:00
dashboard.html feat(l4d2-web): add neutral shell and theme tokens 2026-05-06 12:06:23 +02:00
job_detail.html refactor(l4d2-web): detail-page UI — single panel, soft border, footer Delete 2026-05-09 01:26:57 +02:00
login.html feat(l4d2-web): add login page and safe redirects 2026-05-06 12:52:22 +02:00
overlay_detail.html fix(files-overlay): post-deploy bug sweep + root-as-row UX 2026-05-09 19:46:19 +02:00
overlay_jobs.html feat(l4d2-web): per-overlay job list + redirect to job after build-triggering edits 2026-05-08 17:44:22 +02:00
overlays.html feat(files-overlay): user-managed file content as a third overlay type 2026-05-09 18:59:32 +02:00
server_detail.html feat(l4d2-web): server file tree — enable download symmetric with overlay tree 2026-05-09 01:40:04 +02:00
server_jobs.html feat(l4d2-web): add job pages and cancellation 2026-05-06 15:05:13 +02:00
servers.html feat(l4d2-web): server identity by id, name as display label 2026-05-08 19:22:09 +02:00