From 0b98b54a63669e95a1f0d9036e85b86e6d5d72af Mon Sep 17 00:00:00 2001 From: Admin MPCZ Date: Thu, 7 May 2026 20:28:25 +0200 Subject: [PATCH] fix(snapshots): visibilite des filtres (compteur snapshots caches + message clair quand filtres trop restrictifs) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Si les filtres cachent des snapshots, status affiche '⚠ N snapshot(s) cache(s)' avec hint pour decocher 'Mes snapshots' ou mettre age=0 - Tableau vide differencie 2 cas: * 0 trouvé total -> 'Verifie credentials vCenter' * X trouvé mais tous filtrés -> 'Ajuste les filtres ci-dessus' en jaune --- app/templates/snapshots.html | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/app/templates/snapshots.html b/app/templates/snapshots.html index ff02df3..9627ddb 100644 --- a/app/templates/snapshots.html +++ b/app/templates/snapshots.html @@ -122,10 +122,26 @@ }); } + function updateFilterSummary(visibleCount) { + // Affiche le nombre cachés vs total pour debug + const total = allSnaps.length; + const hidden = total - visibleCount; + const baseStatus = status.dataset.baseMsg || ''; + if (hidden > 0) { + status.innerHTML = baseStatus + ` ⚠ ${hidden} snapshot(s) caché(s) par les filtres (décoche "Mes snapshots" ou mets âge=0 pour tout voir).`; + } else { + status.innerHTML = baseStatus; + } + } + function render() { const rows = applyFilters(); + updateFilterSummary(rows.length); if (!rows.length) { - tbody.innerHTML = 'Aucun snapshot correspondant aux filtres.'; + const total = allSnaps.length; + tbody.innerHTML = total === 0 + ? 'Aucun snapshot dans le scan. Vérifie credentials vCenter.' + : `${total} snapshot(s) trouvé(s) mais tous filtrés. Ajuste les filtres ci-dessus.`; updateDeleteBtn(); return; } @@ -171,8 +187,10 @@ } allSnaps = j.snapshots || []; const errs = (j.errors || []).map(e => `${e.vcenter}: ${e.msg}`).join(' · '); - status.innerHTML = `${j.snap_count} snapshot(s) trouvé(s) sur ${j.vcenter_count} vCenter(s).` + - (errs ? ` ⚠ ${escapeHTML(errs)}` : ''); + const baseMsg = `${j.snap_count} snapshot(s) trouvé(s) sur ${j.vcenter_count} vCenter(s).` + + (errs ? ` ⚠ ${escapeHTML(errs)}` : ''); + status.dataset.baseMsg = baseMsg; + status.innerHTML = baseMsg; render(); } catch (e) { status.innerHTML = 'Erreur réseau : ' + escapeHTML(String(e)) + '';