From 4cead6cf9337f4c7a3b616b23eb0a0cd57a6a5b9 Mon Sep 17 00:00:00 2001 From: Luna Date: Wed, 27 May 2026 03:45:02 -0700 Subject: [PATCH] Web UI: move download URL bar from page footer into Downloads modal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The page-bottom footer holding the URL input + quality picker + flags was a fixed 50-ish-pixel strip eating screen space on every screen, even though most of the time users aren't starting a new download. Move all of it into the ⬇ Downloads modal as a "new download" section above the active jobs list. Same controls (URL, quality, Fast/Live/ Clips), same element IDs so existing helpers (previewDownload, fullScan, dlLive, refreshTwitchClipsVisibility, updateDlMode) keep working unchanged. URL input auto-focuses on modal open so the paste-and-Enter flow is one motion. Footer shrinks to just the AGPL Β§13 source notice (required for deployment compliance, ~12px tall now). updateDlMode is hardened with null-checks since the labels only exist while the modal is open. Co-Authored-By: Claude Opus 4.7 --- src/web_ui/index.html | 88 +++++++++++++++++++++++++++++++------------ 1 file changed, 64 insertions(+), 24 deletions(-) diff --git a/src/web_ui/index.html b/src/web_ui/index.html index 91e10cc..6fa8df5 100644 --- a/src/web_ui/index.html +++ b/src/web_ui/index.html @@ -123,8 +123,16 @@ .err-class{font-size:10px;background:#7f1d1d;color:#fecaca;border-radius:3px;padding:1px 6px;text-transform:uppercase;letter-spacing:.4px;flex-shrink:0} .job-hint{font-size:11px;color:#fecaca;background:rgba(127,29,29,.18);border-left:2px solid #f87171;padding:6px 14px 6px 12px;margin:0 14px 6px} progress{flex:1;height:5px;accent-color:var(--accent);min-width:40px} - footer{background:var(--panel);border-top:1px solid var(--border);padding:8px 12px;display:flex;gap:8px;align-items:center;flex-shrink:0} - footer input{flex:1;min-width:0;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:5px 9px;border-radius:4px;font-size:13px} + footer{background:var(--panel);border-top:1px solid var(--border);padding:6px 12px;display:flex;gap:8px;align-items:center;flex-shrink:0;justify-content:center;min-height:24px} + /* "New download" form inside the Downloads modal. Replaces the old + bottom-of-page footer; sits between the modal header and the + active-jobs list. */ + .dl-new{padding:10px 14px;display:flex;flex-direction:column;gap:8px} + .dl-new-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap} + .dl-new-row input[type="url"]{flex:1;min-width:200px;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:6px 9px;border-radius:4px;font-size:13px} + .dl-new-row select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:5px 6px;font-size:12px} + .dl-new-flags{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)} + .dl-new-flags label{display:flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap} .preview-thumb{width:100%;max-width:280px;aspect-ratio:16/9;object-fit:cover;border-radius:4px;background:#000;flex-shrink:0} .empty{text-align:center;color:var(--muted);padding:40px;font-size:13px} @media(max-width:640px){ @@ -154,10 +162,10 @@ #details{max-height:160px;padding:8px 10px} .chapters-pane{display:none} section#content{padding:8px} - /* Download bar wraps onto two rows so the URL input + button - don't squeeze each other off-screen. */ - footer{flex-wrap:wrap;padding:6px 10px;gap:6px} - footer input{flex-basis:100%;order:-1} + /* Modal "new download" form stacks vertically on small screens so + the URL + button + quality picker don't squeeze each other. */ + .dl-new-row{flex-direction:column;align-items:stretch} + .dl-new-row input[type="url"]{width:100%} /* Bulk-mode actions stack vertically when active. */ .toolbar{flex-wrap:wrap} #bulk-actions{flex-wrap:wrap;gap:4px} @@ -218,20 +226,7 @@
- - - - - - - +