From c74d52c40c6096ac8068a1f361262c9551578bfb Mon Sep 17 00:00:00 2001 From: Quentin Rouiller Date: Tue, 21 Apr 2026 15:00:00 +0200 Subject: [PATCH] =?UTF-8?q?Version=202026.5.19=20=E2=80=94=20Drag=20popup?= =?UTF-8?q?=20=C3=A9pingl=C3=A9=20[code=20interpol=C3=A9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- background.js | 47 +++++++++++++------------------- manifest.json | 2 +- viewer.css | 23 ++++++++++++++++ viewer.js | 75 ++++++++++++++++++++++++++++++++++++++++----------- 4 files changed, 102 insertions(+), 45 deletions(-) diff --git a/background.js b/background.js index 9af0422..af10a54 100644 --- a/background.js +++ b/background.js @@ -730,34 +730,19 @@ async function submitDouchette(origin, phpsessid, opts) { async function deletePlanningItem(origin, phpsessid, actionId, kind) { if (!actionId) throw new Error("actionId manquant"); - // v5.0.1 : plusieurs function_name à tester dans l'ordre (du plus probable - // au moins probable). Le premier qui renvoie 200 ET non-login est considéré OK. - const fnNames = kind === "reservation" - ? [ - "Planning_delete_reservation", - "delete_reservation", - "fc_delete_reservation", - "delete_act_reservation", - "delete_planning_reservation", - "remove_reservation", - // v5.0.2 : réservations sont parfois traitées comme absences côté API - "Planning_delete_absence", - "delete_absence", - "fc_delete_absence" - ] - : [ - // v5.0.2 : élargir la liste, on a essayé 3 sans succès. Les variantes - // plausibles vues dans les API EasyVista : - "Planning_delete_absence", // le plus "officiel" - "delete_absence", // le nom JS dans le onclick - "fc_delete_absence", // pattern fc_* - "delete_act_absence", // parfois "act_" dans les noms - "Planning_delete_holiday", // en anglais - "delete_holiday", - "fc_delete_holiday", - "delete_planning_absence", // variation complète - "remove_absence" - ]; + // v5.0.14 : confirmé par capture Network réelle — EasyVista utilise + // "Planning_delete_absence" pour TOUS les types d'entrée planning (absences, + // réservations, événements, etc.). Réponse XML : true + // On met donc ce nom en PREMIER pour tout, et on garde les autres en fallback. + const fnNames = [ + "Planning_delete_absence", // ← le seul qui marche vraiment côté EV + // Fallbacks historiques (au cas où EV change un jour) : + "Planning_delete_reservation", + "delete_absence", + "delete_reservation", + "fc_delete_absence", + "fc_delete_reservation" + ]; let lastErr = null; let lastBody = null; @@ -770,7 +755,11 @@ async function deletePlanningItem(origin, phpsessid, actionId, kind) { console.log(`[bg] deletePlanningItem → tente function_name=${fn}`, url.substring(0, 180)); try { - const r = await fetch(url, { method: "GET", credentials: "include" }); + // v5.0.13 : utiliser evFetch() au lieu de fetch() brut pour que les + // headers Referer + X-Requested-With soient envoyés — sinon EV renvoie + // un