From d4fc8ff25045dfeb1089307f00cf27d7ab19c4fa Mon Sep 17 00:00:00 2001 From: Quentin Rouiller Date: Tue, 21 Apr 2026 12:46:58 +0200 Subject: [PATCH] =?UTF-8?q?v5.0.6=20=E2=80=94=20Correctifs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manifest.json | 2 +- viewer.js | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/manifest.json b/manifest.json index 4ffcdfa..ea28f3d 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Planification", - "version": "5.0.5", + "version": "5.0.6", "description": "Vue claire et rapide du planning des techniciens EasyVista. Regroupe interventions et réservations par tech, affiche horaires, contact, lieu, catégorie et statut en un coup d'œil.", "permissions": ["activeTab", "scripting", "storage", "tabs", "alarms"], "host_permissions": [ diff --git a/viewer.js b/viewer.js index fadcd07..329fde0 100644 --- a/viewer.js +++ b/viewer.js @@ -1955,11 +1955,19 @@ async function loadForDate(isoDate, opts = {}) { ) ); + // v5.0.6 : logs détaillés pour diagnostiquer pourquoi le fetch ne se + // lance pas. + const totalIv = merged.techs.reduce((s, t) => s + (t.interventions || []).length, 0); + const totalInterIv = merged.techs.reduce((s, t) => + s + (t.interventions || []).filter(i => i.type === "AL-Intervention").length, 0); + const notFetched = merged.techs.reduce((s, t) => + s + (t.interventions || []).filter(i => i.type === "AL-Intervention" && !i.ficheFetched).length, 0); + console.log(`[load] merged : ${merged.techs.length} techs, ${totalIv} iv totales, ${totalInterIv} interventions réelles, ${notFetched} sans fiche`); + console.log(`[load] needFetch = ${needFetch} | doStatusRefresh = ${!!opts.doStatusRefresh} | forceRefetch = ${!!opts.forceRefetch} | aborted = ${isRefreshAborted(myToken)}`); + // v4.3.2 : avant de lancer le fetch des fiches (lourd, ~460 KB chacune), // on fait d'abord un batch xhr2 (léger, ~2-5 KB chacun) pour récupérer // les vraies infos contact/lieu de toutes les interventions en parallèle. - // Comme ça les cartes s'enrichissent en 1-3 secondes au lieu d'attendre - // que l'utilisateur les survole une par une. if (!isRefreshAborted(myToken)) { await prefetchAllXhr2(merged.techs, myToken, opts.doStatusRefresh); } @@ -1968,13 +1976,10 @@ async function loadForDate(isoDate, opts = {}) { const tFiches = performance.now(); const nFiches = merged.techs.flatMap(t=>t.interventions).filter(i=>i.type==="AL-Intervention").length; console.log(`[load] début fetch des ${nFiches} fiches (statuts)…`); - // forceAll : uniquement si refresh manuel (bouton "rafraichir"). - // À la navigation normale entre dates, on ne refetch que les iv non - // encore enrichies (ficheFetched=false) — ça reprend là où on s'était - // arrêté si un refresh précédent a été interrompu par un changement de - // date. await refreshStatuses(merged.techs, isoDate, { forceAll: !!opts.doStatusRefresh, myToken }); console.log(`[load] fiches finies en ${Math.round(performance.now() - tFiches)} ms`); + } else { + console.log(`[load] PAS DE FETCH : needFetch=${needFetch}, doStatusRefresh=${!!opts.doStatusRefresh}, aborted=${isRefreshAborted(myToken)}`); } // 6. Sauvegarder dans le cache (une seule fois, après que tout soit enrichi)