From 6df1c7ea97fdaac185af11663deebfd503830fd1 Mon Sep 17 00:00:00 2001 From: Mikei386 <44135113+Mikei386@users.noreply.github.com> Date: Wed, 24 Jun 2026 13:04:42 +0200 Subject: [PATCH] Show upload progress in transfers --- build-plugin.sh | 2 +- packages/u-navigator-2026.06.23.r049.tgz | Bin 33370 -> 0 bytes packages/u-navigator-2026.06.24.r001.tgz | Bin 0 -> 34331 bytes server/public/app.js | 130 +++++++++++++++++++++-- server/public/styles.css | 8 ++ u-navigator.plg | 4 +- 6 files changed, 135 insertions(+), 9 deletions(-) delete mode 100644 packages/u-navigator-2026.06.23.r049.tgz create mode 100644 packages/u-navigator-2026.06.24.r001.tgz diff --git a/build-plugin.sh b/build-plugin.sh index 54ab595..7315f46 100755 --- a/build-plugin.sh +++ b/build-plugin.sh @@ -2,7 +2,7 @@ set -eu PLUGIN="u-navigator" -VERSION="2026.06.23.r049" +VERSION="2026.06.24.r001" PKG_DIR="packages" WORK_DIR=".plugin-build" PKG_NAME="${PLUGIN}-${VERSION}.tgz" diff --git a/packages/u-navigator-2026.06.23.r049.tgz b/packages/u-navigator-2026.06.23.r049.tgz deleted file mode 100644 index 5fdc6dc7015f2e97ba37400636c9e954ea6d84ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33370 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 ` + const uploads = [...state.uploadTransfers.values()].reverse(); + const transferItems = [ + ...uploads.map(uploadTransferMarkup), + ...jobs.map((job) => `
${escapeHtml(job.type)} #${escapeHtml(job.id)}
${escapeHtml(job.status)} · ${escapeHtml(job.message || '')}
- `).join('') : '

Keine Transfers.

'; + `) + ]; + const jobMarkup = transferItems.length ? transferItems.join('') : '

Keine Transfers.

'; const debugSection = state.config?.debug ? debugMarkup() : ''; return ` @@ -649,6 +656,22 @@ function queueMarkup() { `; } +function uploadTransferMarkup(upload) { + const progress = Math.max(0, Math.min(100, Number(upload.progress) || 0)); + const fileText = `${upload.completedFiles + upload.skippedFiles}/${upload.totalFiles} Dateien`; + const byteText = `${formatBytes(upload.uploadedBytes)} / ${formatBytes(upload.totalBytes)}`; + const detail = upload.currentFile ? ` · ${upload.currentFile}` : ''; + const skipped = upload.skippedFiles ? ` · ${upload.skippedFiles} übersprungen` : ''; + const overwritten = upload.overwrittenFiles ? ` · ${upload.overwrittenFiles} überschrieben` : ''; + return ` +
+ Upload #${escapeHtml(upload.id)} +
${escapeHtml(upload.status)} · ${escapeHtml(fileText)} · ${escapeHtml(byteText)}${escapeHtml(detail)}${escapeHtml(skipped)}${escapeHtml(overwritten)}
+
+
+ `; +} + function debugMarkup() { const debugMarkup = state.debug.length ? state.debug.slice(-12).reverse().map((item) => `
@@ -726,7 +749,9 @@ function scheduleTransferAutoHide() { } function activeTransferCount() { - return [...state.jobs.values()].filter((job) => job.type !== 'size' && ['queued', 'running', 'cancel_requested'].includes(job.status)).length; + const activeJobs = [...state.jobs.values()].filter((job) => job.type !== 'size' && ['queued', 'running', 'cancel_requested'].includes(job.status)).length; + const activeUploads = [...state.uploadTransfers.values()].filter((upload) => ['queued', 'running'].includes(upload.status)).length; + return activeJobs + activeUploads; } function renderTransferPanel() { @@ -902,29 +927,68 @@ async function uploadFileList(win, files, targetPath) { } if (!files.length) return; const uploadItems = normalizeUploadItems(files); + const transfer = createUploadTransfer(targetPath, uploadItems); for (const [index, item] of uploadItems.entries()) { + updateUploadTransfer(transfer, { + status: 'running', + currentFile: item.path, + currentIndex: index + 1 + }); recordDebug('upload.file.request', { path: item.path, size: item.file.size, index: index + 1, total: uploadItems.length }); try { - await uploadFileChunked(targetPath, item.file, item.path, false); + await uploadFileChunked(targetPath, item.file, item.path, false, (bytes) => { + addUploadProgress(transfer, bytes); + }); + updateUploadTransfer(transfer, { + completedFiles: transfer.completedFiles + 1, + currentFile: item.path, + progress: uploadProgressPercent(transfer) + }); recordDebug('upload.file.done', { path: item.path, index: index + 1, total: uploadItems.length, overwrite: false }); } catch (error) { if (error.status !== 409) { + updateUploadTransfer(transfer, { + status: 'failed', + message: error.message || 'Upload fehlgeschlagen', + currentFile: item.path, + progress: uploadProgressPercent(transfer) + }, true); throw error; } const overwrite = window.confirm(`"${item.path}" existiert bereits.\n\nVorhandene Datei überschreiben?`); recordDebug('upload.overwrite.prompt', { path: item.path, overwrite }); if (!overwrite) { + updateUploadTransfer(transfer, { + skippedFiles: transfer.skippedFiles + 1, + currentFile: item.path, + progress: uploadProgressPercent(transfer) + }); recordDebug('upload.file.skipped', { path: item.path, index: index + 1, total: uploadItems.length }); continue; } - await uploadFileChunked(targetPath, item.file, item.path, true); + await uploadFileChunked(targetPath, item.file, item.path, true, (bytes) => { + addUploadProgress(transfer, bytes); + }); + updateUploadTransfer(transfer, { + completedFiles: transfer.completedFiles + 1, + overwrittenFiles: transfer.overwrittenFiles + 1, + currentFile: item.path, + progress: uploadProgressPercent(transfer) + }); recordDebug('upload.file.done', { path: item.path, index: index + 1, total: uploadItems.length, overwrite: true }); } } + updateUploadTransfer(transfer, { + status: 'completed', + message: 'Abgeschlossen', + currentFile: '', + progress: 100 + }, true); + scheduleTransferAutoHide(); await loadExplorer(win, targetPath); } -async function uploadFileChunked(targetPath, file, relativePath, overwrite = false) { +async function uploadFileChunked(targetPath, file, relativePath, overwrite = false, onChunkUploaded = null) { const chunkSize = 256 * 1024; const totalChunks = Math.max(1, Math.ceil(file.size / chunkSize)); let finalPayload = null; @@ -963,6 +1027,7 @@ async function uploadFileChunked(targetPath, file, relativePath, overwrite = fal error.path = relativePath; throw error; } + onChunkUploaded?.(chunk.size); try { finalPayload = JSON.parse(text); } catch (error) { @@ -974,6 +1039,59 @@ async function uploadFileChunked(targetPath, file, relativePath, overwrite = fal } } +function createUploadTransfer(targetPath, uploadItems) { + const transfer = { + id: `upload-${state.nextUploadTransferId++}`, + status: 'queued', + message: 'Wartet', + targetPath, + totalFiles: uploadItems.length, + completedFiles: 0, + skippedFiles: 0, + overwrittenFiles: 0, + totalBytes: uploadItems.reduce((sum, item) => sum + Number(item.file?.size || 0), 0), + uploadedBytes: 0, + currentFile: '', + currentIndex: 0, + progress: 0, + updatedAt: Date.now(), + lastRenderAt: 0 + }; + state.uploadTransfers.set(transfer.id, transfer); + showTransferPanel(); + updateTransferPanel(); + return transfer; +} + +function updateUploadTransfer(transfer, patch, force = false) { + Object.assign(transfer, patch, { + message: patch.message ?? `${transfer.currentIndex || 0}/${transfer.totalFiles}`, + updatedAt: Date.now() + }); + const now = Date.now(); + if (force || now - transfer.lastRenderAt > 180) { + transfer.lastRenderAt = now; + updateTransferPanel(); + } +} + +function addUploadProgress(transfer, bytes) { + transfer.uploadedBytes += Number(bytes || 0); + updateUploadTransfer(transfer, { + progress: uploadProgressPercent(transfer) + }); +} + +function uploadProgressPercent(transfer) { + if (transfer.totalBytes > 0) { + return (transfer.uploadedBytes / transfer.totalBytes) * 100; + } + if (transfer.totalFiles > 0) { + return ((transfer.completedFiles + transfer.skippedFiles) / transfer.totalFiles) * 100; + } + return 0; +} + function arrayBufferToBase64(buffer) { const bytes = new Uint8Array(buffer); let binary = ''; diff --git a/server/public/styles.css b/server/public/styles.css index fad81f4..a20eaab 100644 --- a/server/public/styles.css +++ b/server/public/styles.css @@ -809,6 +809,14 @@ padding: 10px; } +.u-nav .job .muted { + overflow-wrap: anywhere; +} + +.u-nav .upload-job { + border-color: color-mix(in srgb, var(--accent-2) 45%, var(--line)); +} + .u-nav .progress { background: var(--surface-2); border-radius: 999px; diff --git a/u-navigator.plg b/u-navigator.plg index 7d958bf..a533996 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; -3bf3f4752ed9cd8b86fd27f9e17fbe14 +5d36280f152114104067f4d3e3a97234