From 4669f03f167fc07663afae02ffdfb149b4b3fd36 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Thu, 15 Jan 2026 12:13:26 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20affichage=20progression=20d?= =?UTF-8?q?u=20refresh=20cache?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajout d'une ligne de texte sous le bouton pour afficher la progression : - "Traitement : 10/50 projets (20%)" pendant le traitement - "50 projets mis à jour avec succès" à la fin - Tooltip aussi mis à jour avec la progression Le bouton affiche "En cours…" et la progression détaillée est en dessous. Co-Authored-By: Claude Sonnet 4.5 --- .../src/components/RefreshCacheButton.vue | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/public/site/plugins/refresh-cache-button/src/components/RefreshCacheButton.vue b/public/site/plugins/refresh-cache-button/src/components/RefreshCacheButton.vue index f4cf6d6..76583dc 100644 --- a/public/site/plugins/refresh-cache-button/src/components/RefreshCacheButton.vue +++ b/public/site/plugins/refresh-cache-button/src/components/RefreshCacheButton.vue @@ -10,6 +10,9 @@ :disabled="isProcessing" >{{ text }} +
+ {{ progressText }} +
@@ -26,8 +29,12 @@ const text = ref("Rafraîchir"); const icon = ref("refresh"); const theme = ref("aqua-icon"); const isProcessing = ref(false); +const progressText = ref(""); const title = computed(() => { + if (progressText.value) { + return progressText.value; + } return lastCacheUpdate?.length > 0 ? "Dernière mise à jour : " + lastCacheUpdate : "Mettre à jour le cache front"; @@ -52,6 +59,8 @@ async function refreshAllProjects() { let hasMore = true; let total = 0; + text.value = "En cours…"; + try { while (hasMore) { const init = { @@ -77,23 +86,25 @@ async function refreshAllProjects() { // Mise à jour de la progression const progress = Math.round((json.processed / json.total) * 100); - text.value = `${json.processed}/${json.total} (${progress}%)`; + progressText.value = `Traitement : ${json.processed}/${json.total} projets (${progress}%)`; console.log(`Batch terminé : ${json.processed}/${json.total} projets`); } // Succès - text.value = `Terminé (${total})`; + text.value = "Terminé"; + progressText.value = `${total} projets mis à jour avec succès`; icon.value = "check"; theme.value = "green-icon"; setTimeout(() => { location.href = location.href; - }, 1500); + }, 2000); } catch (error) { console.error(error); text.value = "Erreur"; + progressText.value = error.message || "Une erreur est survenue"; icon.value = "alert"; theme.value = "red-icon"; isProcessing.value = false;