From 22a378d36c61fecc39dcd95948dcbbf5bd119b0e Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 12 Mar 2026 01:57:22 +0100 Subject: [PATCH] feat: hoster preset in folder monitor + badge color fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Hoster pre-selection in Ordnerüberwachung settings (only configured accounts shown) - With preset hosters: files go directly to queue without modal - Without preset: hoster modal opens as before - Fix: Aktiv badge now green on initial render Co-Authored-By: Claude Opus 4.6 --- lib/config-store.js | 3 ++- renderer/app.js | 25 +++++++++++++++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/lib/config-store.js b/lib/config-store.js index add1e54..5f9b277 100644 --- a/lib/config-store.js +++ b/lib/config-store.js @@ -49,7 +49,8 @@ const DEFAULTS = { extensions: '', // comma-separated: 'mp4,mkv,avi' skipDuplicates: true, delaySec: 3, - autoStart: true + autoStart: true, + hosters: [] // pre-selected hosters, empty = ask via modal } }, history: [] diff --git a/renderer/app.js b/renderer/app.js index aab6945..cdd7857 100644 --- a/renderer/app.js +++ b/renderer/app.js @@ -80,9 +80,11 @@ async function init() { window.api.onFolderMonitorNewFiles((files) => { window.api.debugLog('folder-monitor: received ' + files.length + ' file(s)'); const fm = config.globalSettings && config.globalSettings.folderMonitor; - const hosters = getSelectedHosters(); - if (hosters.length > 0 && fm && fm.autoStart) { - // Add files directly to queue and start upload + const fmHosters = fm && Array.isArray(fm.hosters) && fm.hosters.length > 0 ? fm.hosters : []; + + if (fmHosters.length > 0) { + // Pre-selected hosters: set them as active selection and add directly to queue + selectedUploadHosters = fmHosters.slice(); const newFiles = []; for (const p of files) { if (!selectedFiles.find(f => f.path === p) && !_pendingFiles.find(f => f.path === p)) { @@ -94,9 +96,10 @@ async function init() { selectedFiles.push(...newFiles); buildQueuePreview(); updateUploadView(); - if (!uploading && !healthCheckRunning) startUpload(); + if (fm.autoStart && !uploading && !healthCheckRunning) startUpload(); } } else { + // No pre-selected hosters: open modal addPathsToQueue(files); } }); @@ -1784,7 +1787,7 @@ function renderSettings() {
Ordnerüberwachung - ${fm.enabled && fm.folderPath ? 'Aktiv' : 'Inaktiv'} + ${fm.enabled && fm.folderPath ? 'Aktiv' : 'Inaktiv'}
+ +
+ ${configuredAccounts.map(({ name }) => ` +
+ + +
`).join('')} +
+ ${configuredAccounts.length === 0 ? '

Erst Accounts anlegen, dann hier auswählen.

' : '

Keine Auswahl = Hoster-Modal bei jeder Datei.

'} `; container.appendChild(folderMonitorPanel); @@ -2023,7 +2035,8 @@ async function saveSettings(options = {}) { extensions: (document.getElementById('fmExtensionsInput')?.value || '').trim(), skipDuplicates: !!document.getElementById('fmSkipDuplicatesInput')?.checked, delaySec: Math.max(1, parseInt(document.getElementById('fmDelaySecInput')?.value || '3', 10) || 3), - autoStart: !!document.getElementById('fmAutoStartInput')?.checked + autoStart: !!document.getElementById('fmAutoStartInput')?.checked, + hosters: Array.from(document.querySelectorAll('.fm-hoster-checkbox:checked')).map(el => el.dataset.fmHoster) } };