fix(snapshots): visibilite des filtres (compteur snapshots caches + message clair quand filtres trop restrictifs)

- 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
This commit is contained in:
Pierre & Lumière 2026-05-07 20:28:25 +02:00
parent 3cdff5db08
commit 0b98b54a63

View File

@ -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 + ` <span class="text-cyber-yellow">⚠ ${hidden} snapshot(s) caché(s) par les filtres</span> (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 = '<tr><td colspan="8" class="p-4 text-center text-gray-500">Aucun snapshot correspondant aux filtres.</td></tr>';
const total = allSnaps.length;
tbody.innerHTML = total === 0
? '<tr><td colspan="8" class="p-4 text-center text-gray-500">Aucun snapshot dans le scan. Vérifie credentials vCenter.</td></tr>'
: `<tr><td colspan="8" class="p-4 text-center text-cyber-yellow">${total} snapshot(s) trouvé(s) mais tous filtrés. Ajuste les filtres ci-dessus.</td></tr>`;
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 ? ` <span class="text-cyber-yellow">⚠ ${escapeHTML(errs)}</span>` : '');
const baseMsg = `${j.snap_count} snapshot(s) trouvé(s) sur ${j.vcenter_count} vCenter(s).` +
(errs ? ` <span class="text-cyber-yellow">⚠ ${escapeHTML(errs)}</span>` : '');
status.dataset.baseMsg = baseMsg;
status.innerHTML = baseMsg;
render();
} catch (e) {
status.innerHTML = '<span class="text-cyber-red">Erreur réseau : ' + escapeHTML(String(e)) + '</span>';