Actualiser test.html
CI / PHP Syntax Check (push) Has been cancelled
CI / JavaScript Lint (push) Has been cancelled
CI / Docker Build Test (push) Has been cancelled
CI / Validate Translation Files (push) Has been cancelled
CI / Auto-merge develop → main (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / PHP Syntax Check (push) Has been cancelled
CI / JavaScript Lint (push) Has been cancelled
CI / Docker Build Test (push) Has been cancelled
CI / Validate Translation Files (push) Has been cancelled
CI / Auto-merge develop → main (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
This commit is contained in:
@@ -82,45 +82,43 @@
|
|||||||
|
|
||||||
const checkedBoxes = document.querySelectorAll('.prod-check:checked');
|
const checkedBoxes = document.querySelectorAll('.prod-check:checked');
|
||||||
if(checkedBoxes.length === 0) return alert("Coche des produits !");
|
if(checkedBoxes.length === 0) return alert("Coche des produits !");
|
||||||
|
|
||||||
const btn = document.getElementById('save-btn');
|
const btn = document.getElementById('save-btn');
|
||||||
btn.disabled = true;
|
btn.disabled = true;
|
||||||
btn.textContent = "Traitement en cours...";
|
btn.textContent = "Traitement en cours...";
|
||||||
|
|
||||||
let successCount = 0;
|
let successCount = 0;
|
||||||
let errorCount = 0;
|
let errorCount = 0;
|
||||||
|
|
||||||
|
// --- TENTATIVE DE RÉCUPÉRATION DU JETON ---
|
||||||
|
// Regarde le nom du champ "name" dans le Payload de ta requête qui marche
|
||||||
|
// Ici on essaie les plus courants
|
||||||
|
let token = document.querySelector('input[name="csrf_token"]')?.value ||
|
||||||
|
document.querySelector('input[name="_token"]')?.value || "";
|
||||||
|
|
||||||
for (const checkbox of checkedBoxes) {
|
for (const checkbox of checkedBoxes) {
|
||||||
let p = fullProductList[checkbox.dataset.index];
|
let p = { ...fullProductList[checkbox.dataset.index] };
|
||||||
|
|
||||||
let formData = new FormData();
|
let formData = new FormData();
|
||||||
for (let key in p) {
|
for (let key in p) { formData.append(key, p[key]); }
|
||||||
formData.append(key, p[key]);
|
|
||||||
}
|
|
||||||
formData.set('category', newCat);
|
formData.set('category', newCat);
|
||||||
|
if (token) formData.append('csrf_token', token); // Ajuste 'csrf_token' si besoin
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// On ajoute l'en-tête X-Requested-With qui est souvent le verrou du 403
|
|
||||||
let res = await fetch('api/index.php?action=product_save', {
|
let res = await fetch('api/index.php?action=product_save', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: formData,
|
body: formData,
|
||||||
headers: {
|
headers: { 'X-Requested-With': 'XMLHttpRequest' }
|
||||||
'X-Requested-With': 'XMLHttpRequest'
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// On récupère le texte pour voir ce que le serveur dit vraiment en cas d'erreur
|
if (res.ok) successCount++;
|
||||||
let resultText = await res.text();
|
else {
|
||||||
|
let text = await res.text();
|
||||||
if (res.ok) {
|
console.error("Échec:", text);
|
||||||
successCount++;
|
|
||||||
} else {
|
|
||||||
console.error("Échec sur " + p.name + " (Code " + res.status + "):", resultText);
|
|
||||||
errorCount++;
|
errorCount++;
|
||||||
}
|
}
|
||||||
await new Promise(r => setTimeout(r, 300));
|
await new Promise(r => setTimeout(r, 300));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error("Erreur critique sur " + p.name, e);
|
|
||||||
errorCount++;
|
errorCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -128,7 +126,7 @@
|
|||||||
await loadData();
|
await loadData();
|
||||||
btn.disabled = false;
|
btn.disabled = false;
|
||||||
btn.textContent = "APPLIQUER AUX COCHÉS";
|
btn.textContent = "APPLIQUER AUX COCHÉS";
|
||||||
alert(`Traitement terminé :\n- Succès : ${successCount}\n- Erreurs : ${errorCount}\n\n(Vérifie la console F12 pour le détail des erreurs)`);
|
alert(`Terminé :\n- Succès : ${successCount}\n- Erreurs : ${errorCount}`);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
Reference in New Issue
Block a user