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