From afd7173ba08ec052add6d42acdb8f2800720677c Mon Sep 17 00:00:00 2001 From: kqjy Date: Sat, 21 Mar 2026 14:51:43 +0800 Subject: [PATCH] Fix buttons all showing Running state when only one action is triggered --- templates/system.html | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/templates/system.html b/templates/system.html index 39158d9..3758517 100644 --- a/templates/system.html +++ b/templates/system.html @@ -348,14 +348,14 @@ (function () { var csrfToken = document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || ''; - function setLoading(btnId, loading) { + function setLoading(btnId, loading, spinnerOnly) { var btn = document.getElementById(btnId); if (!btn) return; btn.disabled = loading; - if (loading) { + if (loading && !spinnerOnly) { btn.dataset.originalHtml = btn.innerHTML; btn.innerHTML = 'Running...'; - } else if (btn.dataset.originalHtml) { + } else if (!loading && btn.dataset.originalHtml) { btn.innerHTML = btn.dataset.originalHtml; } } @@ -370,8 +370,8 @@ } window.runGC = function (dryRun) { - setLoading('gcRunBtn', true); - setLoading('gcDryRunBtn', true); + setLoading(dryRun ? 'gcDryRunBtn' : 'gcRunBtn', true); + setLoading(dryRun ? 'gcRunBtn' : 'gcDryRunBtn', true, true); fetch('{{ url_for("ui.system_gc_run") }}', { method: 'POST', @@ -432,9 +432,10 @@ }; window.runIntegrity = function (dryRun, autoHeal) { - setLoading('integrityRunBtn', true); - setLoading('integrityHealBtn', true); - setLoading('integrityDryRunBtn', true); + var activeBtn = dryRun ? 'integrityDryRunBtn' : (autoHeal ? 'integrityHealBtn' : 'integrityRunBtn'); + ['integrityRunBtn', 'integrityHealBtn', 'integrityDryRunBtn'].forEach(function (id) { + setLoading(id, true, id !== activeBtn); + }); fetch('{{ url_for("ui.system_integrity_run") }}', { method: 'POST',