forked from FroSteel/Planification
Version 2026.5.19 — Drag popup épinglé
[code interpolé]
This commit is contained in:
+18
-29
@@ -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 : <Planning_delete_absence>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 <script> de redirection CSRF qui ne ressemble pas à une erreur et
|
||||
// notre heuristique le prenait à tort pour un succès.
|
||||
const r = await evFetch(url, origin, { method: "GET" });
|
||||
const body = await r.text();
|
||||
console.log(`[bg] status=${r.status} | body (200 premiers chars) : ${(body || "").substring(0, 200)}`);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user