From e3b95abca6ed59a59ac1026f387e3a42bb8d6cda Mon Sep 17 00:00:00 2001 From: Mikei386 <44135113+Mikei386@users.noreply.github.com> Date: Tue, 14 Jul 2026 18:25:47 +0200 Subject: [PATCH] Add resizable compact folder sidebar --- build-plugin.sh | 2 +- packages/u-navigator-2026.07.14.r014.tgz | Bin 0 -> 39673 bytes server/public/app.js | 38 +++++++++++++++++++++- server/public/styles.css | 39 ++++++++++++++++++++--- u-navigator.plg | 4 +-- 5 files changed, 75 insertions(+), 8 deletions(-) create mode 100644 packages/u-navigator-2026.07.14.r014.tgz diff --git a/build-plugin.sh b/build-plugin.sh index a90a3a5..5392e7b 100755 --- a/build-plugin.sh +++ b/build-plugin.sh @@ -2,7 +2,7 @@ set -eu PLUGIN="u-navigator" -VERSION="2026.07.14.r013" +VERSION="2026.07.14.r014" PKG_DIR="packages" WORK_DIR=".plugin-build" PKG_NAME="${PLUGIN}-${VERSION}.tgz" diff --git a/packages/u-navigator-2026.07.14.r014.tgz b/packages/u-navigator-2026.07.14.r014.tgz new file mode 100644 index 0000000000000000000000000000000000000000..c543fe88912196ef63fa76816971c0887a6a7927 GIT binary patch literal 39673 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'grid')} -

+
${data.treeVisible ? renderFolderTree(win) : ''} + ${data.treeVisible ? '' : ''}
${data.error ? `

${escapeHtml(data.error)}

` : ''} @@ -342,6 +344,7 @@ function renderExplorer(body, win) { body.querySelector('[data-action="upload-folder"]').addEventListener('click', () => body.querySelector('[data-upload="folder"]').click()); body.querySelector('[data-action="delete-selected"]').addEventListener('click', () => deleteEntries(win)); bindFolderTree(body, win); + body.querySelector('[data-action="resize-tree"]')?.addEventListener('pointerdown', (event) => startTreeResize(event, win, body)); for (const inputEl of body.querySelectorAll('.upload-input')) { inputEl.addEventListener('change', async () => { try { @@ -491,6 +494,39 @@ function bindFolderTree(body, win) { } } +function startTreeResize(event, win, body) { + if (event.button !== 0) return; + event.preventDefault(); + event.stopPropagation(); + const handle = event.currentTarget; + const layout = body.querySelector('.explorer-layout'); + const startX = event.clientX; + const startWidth = Number(win.data.treeWidth) || body.querySelector('.folder-tree')?.getBoundingClientRect().width || 220; + const pointerId = event.pointerId; + handle.classList.add('active'); + try { + handle.setPointerCapture(pointerId); + } catch {} + + const move = (moveEvent) => { + const maxWidth = Math.max(180, Math.min(480, body.clientWidth - 240)); + win.data.treeWidth = Math.round(clamp(startWidth + moveEvent.clientX - startX, 150, maxWidth)); + layout?.style.setProperty('--tree-width', `${win.data.treeWidth}px`); + }; + const up = () => { + handle.classList.remove('active'); + handle.removeEventListener('pointermove', move); + handle.removeEventListener('pointerup', up); + handle.removeEventListener('pointercancel', up); + try { + handle.releasePointerCapture(pointerId); + } catch {} + }; + handle.addEventListener('pointermove', move); + handle.addEventListener('pointerup', up); + handle.addEventListener('pointercancel', up); +} + function renderFileEntries(entries, view, selectedPaths = new Set()) { if (!entries.length) { return '

Dieser Ordner ist leer. Dateien können hier abgelegt werden.

'; diff --git a/server/public/styles.css b/server/public/styles.css index 7e72627..1d67a41 100644 --- a/server/public/styles.css +++ b/server/public/styles.css @@ -313,7 +313,7 @@ } .u-nav .explorer-layout.with-tree { - grid-template-columns: clamp(180px, 25%, 250px) minmax(0, 1fr); + grid-template-columns: clamp(150px, var(--tree-width, 220px), 55%) 6px minmax(0, 1fr); } .u-nav .explorer-content { @@ -331,6 +331,32 @@ min-width: 0; } +.u-nav .tree-resizer { + background: var(--surface); + border-left: 1px solid transparent; + border-right: 1px solid var(--line); + cursor: ew-resize; + min-height: 0; + position: relative; + touch-action: none; + width: 6px; + z-index: 3; +} + +.u-nav .tree-resizer::after { + background: transparent; + border-radius: 999px; + content: ""; + inset: 8px 1px; + position: absolute; + transition: background-color 140ms ease; +} + +.u-nav .tree-resizer:hover::after, +.u-nav .tree-resizer.active::after { + background: var(--accent); +} + .u-nav .tree-heading { align-items: center; border-bottom: 1px solid var(--line); @@ -398,12 +424,17 @@ color: inherit; display: flex; flex: 1; - gap: 7px; - justify-content: flex-start; + gap: 5px !important; + justify-content: flex-start !important; min-width: 0; overflow: hidden; padding: 0 5px 0 2px; - text-align: left; + text-align: left !important; +} + +.u-nav .tree-label > * { + margin-left: 0 !important; + margin-right: 0 !important; } .u-nav .tree-label:hover, diff --git a/u-navigator.plg b/u-navigator.plg index 6feaf57..1862a86 100644 --- a/u-navigator.plg +++ b/u-navigator.plg @@ -1,7 +1,7 @@ - + @@ -24,7 +24,7 @@ https://git.casaderoll.de/michael/Unraid-Navigator/raw/branch/main/packages/&package; -eb8a765a5e07ff3a65b04b40b6f76fb5 +b4fd1637ca533afc55dbff96903fc53a