From 5f014911a5c5f55896c58cfa5a4a2ce313c48933 Mon Sep 17 00:00:00 2001 From: Mikei386 <44135113+Mikei386@users.noreply.github.com> Date: Tue, 23 Jun 2026 14:55:59 +0200 Subject: [PATCH] Add permissions editor modal --- build-plugin.sh | 2 +- packages/u-navigator-2026.06.23.r038.tgz | Bin 27403 -> 0 bytes packages/u-navigator-2026.06.23.r039.tgz | Bin 0 -> 28491 bytes server/public/app.js | 128 ++++++++++++++++++++--- server/public/styles.css | 101 ++++++++++++++++++ u-navigator.plg | 4 +- 6 files changed, 216 insertions(+), 19 deletions(-) delete mode 100644 packages/u-navigator-2026.06.23.r038.tgz create mode 100644 packages/u-navigator-2026.06.23.r039.tgz diff --git a/build-plugin.sh b/build-plugin.sh index fe9af14..1b2133a 100755 --- a/build-plugin.sh +++ b/build-plugin.sh @@ -2,7 +2,7 @@ set -eu PLUGIN="u-navigator" -VERSION="2026.06.23.r038" +VERSION="2026.06.23.r039" PKG_DIR="packages" WORK_DIR=".plugin-build" PKG_NAME="${PLUGIN}-${VERSION}.tgz" diff --git a/packages/u-navigator-2026.06.23.r038.tgz b/packages/u-navigator-2026.06.23.r038.tgz deleted file mode 100644 index c5affce146e0d572982ab84fbabb70d3b76bf473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27403 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 H9PEDpM4?S0 diff --git a/packages/u-navigator-2026.06.23.r039.tgz b/packages/u-navigator-2026.06.23.r039.tgz new file mode 100644 index 0000000000000000000000000000000000000000..24386ce75b19b14f698a308f04a19e4189a6a2ba GIT binary patch literal 28491 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 Gh5`UMNJwJ< literal 0 HcmV?d00001 diff --git a/server/public/app.js b/server/public/app.js index 7f8d51d..2c47456 100644 --- a/server/public/app.js +++ b/server/public/app.js @@ -11,6 +11,7 @@ const state = { focusedId: null, selectedEntry: null, contextMenu: null, + permissionsDialog: null, draggedEntry: null, pointerDrag: null, suppressClickPath: null, @@ -191,6 +192,9 @@ function render() { if (state.contextMenu) { workspace.appendChild(renderContextMenu()); } + if (state.permissionsDialog) { + workspace.appendChild(renderPermissionsDialog()); + } renderTransferPanel(); renderSettingsPanel(); } @@ -1012,32 +1016,124 @@ async function promptTransfer(win, entry, type) { await createJob(type, entry.path, `${targetDir.replace(/\/$/, '')}/${entry.name}`, []); } -async function promptPermissions(win, entry) { +function openPermissionsDialog(win, entry) { if (isReadOnly()) { showError(new Error('Read-only mode ist aktiv.')); return; } const entries = selectedPathSet(win).has(entry.path) ? selectedEntries(win) : [entry]; - const mode = prompt('Berechtigungen als Oktalmodus, z.B. 0644 oder 0755', entry.permissions ? `0${entry.permissions}`.slice(-4) : ''); - if (mode === null) return; - const owner = prompt('Besitzer ändern, leer lassen für unverändert', entry.owner || ''); - if (owner === null) return; - const group = prompt('Gruppe ändern, leer lassen für unverändert', entry.group || ''); - if (group === null) return; - const hasDirectory = entries.some((item) => item.type === 'directory'); - const recursive = hasDirectory && confirm('Rekursiv auf Unterordner und Dateien anwenden?'); + state.permissionsDialog = { + winId: win.id, + entries, + mode: entry.permissions ? `0${entry.permissions}`.slice(-4) : '0755', + owner: entry.owner || '', + group: entry.group || '', + recursive: false, + hasDirectory: entries.some((item) => item.type === 'directory') + }; + render(); +} + +function renderPermissionsDialog() { + const dialog = state.permissionsDialog; + const overlay = document.createElement('div'); + overlay.className = 'modal-overlay'; + overlay.innerHTML = ` +
+
+ Berechtigungen ändern + +
+ +
+ + +
+
+ `; + + const form = overlay.querySelector('form'); + form.addEventListener('click', (event) => event.stopPropagation()); + overlay.addEventListener('click', () => closePermissionsDialog()); + overlay.querySelectorAll('[data-action="cancel"]').forEach((button) => { + button.addEventListener('click', () => closePermissionsDialog()); + }); + for (const checkboxName of ['changeMode', 'changeOwner', 'changeGroup']) { + const checkbox = form.elements[checkboxName]; + const inputName = checkboxName.replace('change', '').toLowerCase(); + const input = form.elements[inputName]; + checkbox.addEventListener('change', () => { + input.disabled = !checkbox.checked; + if (!input.disabled) input.focus(); + }); + } + for (const button of overlay.querySelectorAll('[data-mode]')) { + button.addEventListener('click', () => { + form.elements.changeMode.checked = true; + form.elements.mode.disabled = false; + form.elements.mode.value = button.dataset.mode; + }); + } + form.addEventListener('submit', (event) => { + event.preventDefault(); + applyPermissionsDialog(form).catch(showError); + }); + return overlay; +} + +function closePermissionsDialog() { + state.permissionsDialog = null; + render(); +} + +async function applyPermissionsDialog(form) { + const dialog = state.permissionsDialog; + if (!dialog) return; const options = { - mode: mode.trim(), - owner: owner.trim(), - group: group.trim(), - recursive: recursive ? '1' : '0' + mode: form.elements.changeMode.checked ? form.elements.mode.value.trim() : '', + owner: form.elements.changeOwner.checked ? form.elements.owner.value.trim() : '', + group: form.elements.changeGroup.checked ? form.elements.group.value.trim() : '', + recursive: form.elements.recursive.checked ? '1' : '0' }; if (!options.mode && !options.owner && !options.group) { showError(new Error('Keine Änderung angegeben.')); return; } - for (const item of entries) { - await createJob('permissions', item.path, null, [win.id], options); + if (options.mode && !/^[0-7]{3,4}$/.test(options.mode)) { + showError(new Error('Berechtigungen müssen aus 3 oder 4 Oktalziffern bestehen.')); + return; + } + const win = state.windows.find((item) => item.id === dialog.winId); + closePermissionsDialog(); + for (const item of dialog.entries) { + await createJob('permissions', item.path, null, [win?.id], options); } } @@ -1076,7 +1172,7 @@ function renderContextMenu() { actions.push(['Eigenschaften', () => showPropertiesForEntry(win, entry)]); if (!isReadOnly()) { actions.push(['Umbenennen', () => renameEntry(win, entry)]); - actions.push(['Berechtigungen...', () => promptPermissions(win, entry)]); + actions.push(['Berechtigungen...', () => openPermissionsDialog(win, entry)]); actions.push(['Kopieren nach...', () => promptTransfer(win, entry, 'copy')]); actions.push(['Verschieben nach...', () => promptTransfer(win, entry, 'move')]); } diff --git a/server/public/styles.css b/server/public/styles.css index 46ea6d0..6beb83c 100644 --- a/server/public/styles.css +++ b/server/public/styles.css @@ -51,6 +51,12 @@ border-color: var(--accent); } +.u-nav button.primary { + background: var(--accent); + border-color: var(--accent); + color: #ffffff; +} + .u-nav button.icon { align-items: center; display: inline-flex; @@ -496,6 +502,101 @@ border-color: var(--line); } +.u-nav .modal-overlay { + align-items: center; + background: rgba(10, 14, 18, 0.42); + display: flex; + inset: 0; + justify-content: center; + padding: 18px; + position: absolute; + z-index: 100020; +} + +.u-nav .permissions-modal { + background: var(--surface); + border: 1px solid var(--line); + border-radius: 8px; + box-shadow: var(--shadow); + color: var(--text); + display: grid; + max-height: min(640px, 100%); + max-width: 100%; + min-width: min(420px, 100%); + overflow: hidden; + width: 460px; +} + +.u-nav .permissions-modal header, +.u-nav .permissions-modal footer { + align-items: center; + background: var(--surface-2); + display: flex; + gap: 8px; + justify-content: space-between; + padding: 8px 10px 8px 12px; +} + +.u-nav .permissions-modal header { + border-bottom: 1px solid var(--line); +} + +.u-nav .permissions-modal footer { + border-top: 1px solid var(--line); + justify-content: flex-end; +} + +.u-nav .modal-body { + display: grid; + gap: 9px; + overflow: auto; + padding: 12px; +} + +.u-nav .permissions-modal input[type="text"], +.u-nav .permissions-modal input:not([type]) { + background: var(--surface-2); + border: 1px solid var(--line); + border-radius: 6px; + color: var(--text); + font: inherit; + min-height: 32px; + padding: 0 9px; + width: 100%; +} + +.u-nav .permissions-modal input:disabled { + opacity: 0.48; +} + +.u-nav .check-row { + align-items: center; + display: flex; + gap: 9px; +} + +.u-nav .check-row input { + accent-color: var(--accent); + height: 18px; + margin: 0; + width: 18px; +} + +.u-nav .check-row.disabled { + opacity: 0.5; +} + +.u-nav .permission-presets { + display: grid; + gap: 6px; + grid-template-columns: repeat(4, minmax(0, 1fr)); +} + +.u-nav .permission-presets button { + min-width: 0; + padding: 0 6px; +} + .u-nav .transfer-panel { background: var(--surface); border: 1px solid var(--line); diff --git a/u-navigator.plg b/u-navigator.plg index 5781309..ee6bdbc 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; -87661843082c0f41bd627a315278e346 +bee22dc7b1842112f37fe2513fd413d0