From af9e7703ea08291f9914a5dd52aa1121152d949f Mon Sep 17 00:00:00 2001 From: Mikei386 <44135113+Mikei386@users.noreply.github.com> Date: Tue, 14 Jul 2026 18:35:51 +0200 Subject: [PATCH] Modernize file context menu --- build-plugin.sh | 2 +- packages/u-navigator-2026.07.14.r016.tgz | Bin 0 -> 40391 bytes server/public/app.js | 42 +++++++++++------ server/public/styles.css | 57 +++++++++++++++++++---- u-navigator.plg | 4 +- 5 files changed, 78 insertions(+), 27 deletions(-) create mode 100644 packages/u-navigator-2026.07.14.r016.tgz diff --git a/build-plugin.sh b/build-plugin.sh index d52c928..373ce6a 100755 --- a/build-plugin.sh +++ b/build-plugin.sh @@ -2,7 +2,7 @@ set -eu PLUGIN="u-navigator" -VERSION="2026.07.14.r015" +VERSION="2026.07.14.r016" PKG_DIR="packages" WORK_DIR=".plugin-build" PKG_NAME="${PLUGIN}-${VERSION}.tgz" diff --git a/packages/u-navigator-2026.07.14.r016.tgz b/packages/u-navigator-2026.07.14.r016.tgz new file mode 100644 index 0000000000000000000000000000000000000000..1a8bf81697cd7eb535f2c01e45a844d71579d722 GIT binary patch literal 40391 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

IcWRlYS$}kUYg-5Iprwg*YW08=O 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 yD(rMx<&Eal6?!3CFv0L', chevronRight: '', close: '', + copy: '', delete: '', + download: '', + edit: '', enter: '', file: '', folder: '', @@ -59,9 +62,13 @@ const uiIcons = { grid: '', list: '', link: '', + info: '', maximize: '', minimize: '', + move: '', + preview: '', refresh: '', + shield: '', tree: '', upload: '' }; @@ -1995,33 +2002,40 @@ function renderContextMenu() { if (entry) { if (entry.type === 'directory') { - actions.push(['Öffnen', () => loadExplorer(win, entry.path)]); + actions.push({ label: 'Öffnen', icon: 'folder', action: () => loadExplorer(win, entry.path) }); } else if (isPreviewable(entry)) { - actions.push(['Vorschau', () => openPreview(entry, win.id)]); + actions.push({ label: 'Vorschau', icon: 'preview', action: () => openPreview(entry, win.id) }); } - actions.push(['Eigenschaften', () => showPropertiesForEntry(win, entry)]); - actions.push(['Herunterladen', () => downloadEntries(win, entry)]); + actions.push({ label: 'Eigenschaften', icon: 'info', action: () => showPropertiesForEntry(win, entry) }); + actions.push({ label: 'Herunterladen', icon: 'download', action: () => downloadEntries(win, entry) }); if (!isReadOnly()) { - actions.push(['Umbenennen', () => renameEntry(win, entry)]); - actions.push(['Berechtigungen...', () => openPermissionsDialog(win, entry)]); - actions.push(['Kopieren nach...', () => promptTransfer(win, entry, 'copy')]); - actions.push(['Verschieben nach...', () => promptTransfer(win, entry, 'move')]); - actions.push(['Löschen', () => deleteEntries(win, entry)]); + actions.push({ label: 'Umbenennen', icon: 'edit', separator: true, action: () => renameEntry(win, entry) }); + actions.push({ label: 'Berechtigungen…', icon: 'shield', action: () => openPermissionsDialog(win, entry) }); + actions.push({ label: 'Kopieren nach…', icon: 'copy', action: () => promptTransfer(win, entry, 'copy') }); + actions.push({ label: 'Verschieben nach…', icon: 'move', action: () => promptTransfer(win, entry, 'move') }); + actions.push({ label: 'Löschen', icon: 'delete', danger: true, separator: true, action: () => deleteEntries(win, entry) }); } } else { - actions.push(['Aktuellen Ordner herunterladen', () => downloadEntries(win, null)]); - actions.push(['Neu laden', () => loadExplorer(win, win.data.path)]); + actions.push({ label: 'Aktuellen Ordner herunterladen', icon: 'download', action: () => downloadEntries(win, null) }); + actions.push({ label: 'Neu laden', icon: 'refresh', action: () => loadExplorer(win, win.data.path) }); } - for (const [label, action] of actions) { + for (const item of actions) { + if (item.separator) { + const separator = document.createElement('div'); + separator.className = 'context-separator'; + separator.setAttribute('role', 'separator'); + menu.appendChild(separator); + } const button = document.createElement('button'); button.type = 'button'; - button.textContent = label; + button.className = `context-action ${item.danger ? 'danger' : ''}`; + button.innerHTML = `${iconSvg(item.icon)}${escapeHtml(item.label)}`; button.addEventListener('click', async () => { state.contextMenu = null; render(); try { - await action(); + await item.action(); } catch (error) { showError(error); } diff --git a/server/public/styles.css b/server/public/styles.css index b145d92..9603363 100644 --- a/server/public/styles.css +++ b/server/public/styles.css @@ -792,25 +792,62 @@ .u-nav .context-menu { background: var(--surface); border: 1px solid var(--line); - border-radius: 8px; + border-radius: 10px; box-shadow: var(--shadow); display: grid; - min-width: 170px; - padding: 5px; + min-width: 205px; + padding: 4px; position: absolute; z-index: 100000; } -.u-nav .context-menu button { - border-color: transparent; - justify-content: flex-start; - text-align: left; +.u-nav .context-menu .context-action { + align-items: center; + background: transparent; + border: 0; + border-radius: 7px; + box-shadow: none; + display: grid; + font: 500 12px/1.2 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important; + gap: 7px; + grid-template-columns: 18px minmax(0, 1fr); + justify-content: stretch !important; + letter-spacing: normal !important; + margin: 0 !important; + min-height: 30px; + padding: 0 8px !important; + text-align: left !important; + text-transform: none !important; + white-space: nowrap; width: 100%; } -.u-nav .context-menu button:hover { - background: var(--surface-2); - border-color: var(--line); +.u-nav .context-menu .context-action:hover, +.u-nav .context-menu .context-action:focus-visible { + background: var(--accent-soft); + color: var(--accent); +} + +.u-nav .context-menu .context-action.danger { + color: #c4382d; +} + +.u-nav .context-icon { + align-items: center; + display: inline-flex; + justify-content: center; +} + +.u-nav .context-icon .unav-icon { + height: 15px; + stroke-width: 1.9; + width: 15px; +} + +.u-nav .context-separator { + border-top: 1px solid var(--line); + height: 1px; + margin: 4px 5px; } .u-nav .modal-overlay { diff --git a/u-navigator.plg b/u-navigator.plg index 43a9c45..2f67859 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; -e7bd64a4dda7a5915d9ef73657dec517 +8c943cbf6a929bfb8e3249c901fb3869