From 052bd940f1fd8698c8ef51fced3c9f06e2ff6e9e Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 12 Mar 2026 04:17:46 +0100 Subject: [PATCH] feat: add account enable/disable toggle - Toggle button on each account card to activate/deactivate hosters - Disabled accounts are greyed out and excluded from upload selection - Credentials are preserved when deactivated Co-Authored-By: Claude Opus 4.6 --- package.json | 2 +- renderer/app.js | 33 +++++++++++++++++++++++++++------ renderer/styles.css | 3 +++ 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 599d90d..bf5798d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "multi-hoster-uploader", - "version": "1.9.7", + "version": "1.9.8", "description": "Upload files to doodstream, voe, vidmoly, byse simultaneously", "main": "main.js", "scripts": { diff --git a/renderer/app.js b/renderer/app.js index f48ae30..abb6904 100644 --- a/renderer/app.js +++ b/renderer/app.js @@ -144,7 +144,7 @@ function getAvailableHosters() { const hoster = config.hosters[name] || {}; return { name, hoster, hasCreds: hosterHasCredentials(name, hoster) }; }) - .filter(item => item.hasCreds); + .filter(item => item.hasCreds && item.hoster.enabled !== false); } function syncSelectedUploadHosters() { @@ -2148,23 +2148,27 @@ function renderAccounts() { } container.innerHTML = accounts.map(({ name, hoster }) => { + const isDisabled = hoster.enabled === false; const st = accountStatuses[name] || { status: 'unchecked', message: '' }; const statusLabels = { ok: 'Bereit', warn: 'Warnung', checking: 'Prüfe...', error: 'Fehler', unchecked: 'Nicht geprüft' }; - const statusLabel = statusLabels[st.status] || 'Nicht geprüft'; + const statusLabel = isDisabled ? 'Deaktiviert' : (statusLabels[st.status] || 'Nicht geprüft'); + const statusClass = isDisabled ? 'disabled' : st.status; const credLabel = getCredentialLabel(name, hoster); + const toggleLabel = isDisabled ? 'Aktivieren' : 'Deaktivieren'; return ` -