fix(diagnostic): 'Sicher aufraeumen' ohne confirm() — Button feuerte nie
Ursache gefunden (WS-Direkttest beweist: Server-Pfad + Docker-Prune-API
funktionieren, aber der Klick kam nie an): runDiskCleanup() rief confirm()
VOR dem send(). Hatte der Browser Dialoge unterdrueckt ('Verhindern, dass
diese Seite weitere Dialoge erstellt' — bei dem vielen alert()/confirm()
im Diagnostic leicht passiert), gab confirm() automatisch false zurueck →
return vor send() → Button tat sichtbar nichts.
Fix: 'safe' laeuft OHNE confirm (Build-Cache + ungenutzte Images sind
ungefaehrlich, keine Volumes/Daten). Nur 'aggressive' (Volumes!) fragt
noch. Ergebnis wird am Button + Banner gezeigt, nicht nur per alert()
(das koennte genauso unterdrueckt sein).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+20
-8
@@ -1767,14 +1767,21 @@
|
|||||||
|
|
||||||
if (msg.type === 'disk_cleanup') {
|
if (msg.type === 'disk_cleanup') {
|
||||||
const btn = document.getElementById('disk-clean-btn');
|
const btn = document.getElementById('disk-clean-btn');
|
||||||
|
const dtext = document.getElementById('disk-banner-text');
|
||||||
if (msg.status === 'running') {
|
if (msg.status === 'running') {
|
||||||
if (btn) { btn.disabled = true; btn.textContent = 'Raeume auf...'; }
|
if (btn) { btn.disabled = true; btn.textContent = 'Raeume auf...'; }
|
||||||
} else if (msg.status === 'done') {
|
} else if (msg.status === 'done') {
|
||||||
if (btn) { btn.disabled = false; btn.textContent = 'Sicher aufraeumen'; }
|
// Feedback NICHT nur per alert() (koennte unterdrueckt sein) —
|
||||||
alert('Aufgeraeumt: ' + (msg.freed || '0 MB') + ' frei\n(' + (msg.steps || []).join(', ') + ')');
|
// direkt am Button + im Banner sichtbar machen.
|
||||||
|
if (btn) {
|
||||||
|
btn.disabled = false;
|
||||||
|
btn.textContent = '✓ ' + (msg.freed || '0 MB') + ' frei';
|
||||||
|
setTimeout(() => { btn.textContent = 'Sicher aufraeumen'; }, 6000);
|
||||||
|
}
|
||||||
|
if (dtext) dtext.textContent = 'Aufgeraeumt: ' + (msg.freed || '0 MB') + ' frei (' + (msg.steps || []).join(', ') + '). Disk-Status aktualisiert sich gleich.';
|
||||||
} else if (msg.status === 'error') {
|
} else if (msg.status === 'error') {
|
||||||
if (btn) { btn.disabled = false; btn.textContent = 'Sicher aufraeumen'; }
|
if (btn) { btn.disabled = false; btn.textContent = 'Fehler — nochmal'; setTimeout(() => { btn.textContent = 'Sicher aufraeumen'; }, 6000); }
|
||||||
alert('Aufraeumen fehlgeschlagen: ' + (msg.error || ''));
|
if (dtext) dtext.textContent = 'Aufraeumen fehlgeschlagen: ' + (msg.error || '');
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -6776,12 +6783,17 @@
|
|||||||
|
|
||||||
// Fuehrt das Aufraeumen WIRKLICH aus (Server-seitig via Docker-API), statt
|
// Fuehrt das Aufraeumen WIRKLICH aus (Server-seitig via Docker-API), statt
|
||||||
// nur den Befehl zu kopieren.
|
// nur den Befehl zu kopieren.
|
||||||
|
// WICHTIG: "safe" laeuft OHNE confirm() — Build-Cache + ungenutzte Images
|
||||||
|
// sind ungefaehrlich (keine Volumes/Daten). Frueher blockte ein confirm()
|
||||||
|
// den Klick, wenn der Browser Dialoge unterdrueckt hatte ("Verhindern,
|
||||||
|
// dass diese Seite weitere Dialoge erstellt") → confirm()===false → es ging
|
||||||
|
// NICHTS raus. Nur "aggressive" (Volumes!) fragt noch nach.
|
||||||
function runDiskCleanup(variant) {
|
function runDiskCleanup(variant) {
|
||||||
const aggressive = variant === 'aggressive';
|
const aggressive = variant === 'aggressive';
|
||||||
const q = aggressive
|
if (aggressive) {
|
||||||
? 'AGGRESSIV aufraeumen? Loescht zusaetzlich ungenutzte Volumes — nur wenn ALLE ARIA-Container laufen, sonst Datenverlust!'
|
const ok = confirm('AGGRESSIV aufraeumen? Loescht zusaetzlich ungenutzte Volumes — nur wenn ALLE ARIA-Container laufen, sonst Datenverlust!');
|
||||||
: 'Sicher aufraeumen? Loescht Build-Cache + ungenutzte Images (keine Volumes, keine Daten gehen verloren).';
|
if (!ok) return;
|
||||||
if (!confirm(q)) return;
|
}
|
||||||
const btn = document.getElementById('disk-clean-btn');
|
const btn = document.getElementById('disk-clean-btn');
|
||||||
if (btn && !aggressive) { btn.disabled = true; btn.textContent = 'Raeume auf...'; }
|
if (btn && !aggressive) { btn.disabled = true; btn.textContent = 'Raeume auf...'; }
|
||||||
send({ action: 'disk_cleanup', variant });
|
send({ action: 'disk_cleanup', variant });
|
||||||
|
|||||||
Reference in New Issue
Block a user