78 lines
2.3 KiB
JavaScript
78 lines
2.3 KiB
JavaScript
// Simuler la BDD slider
|
||
let slides = [
|
||
{ id: 1, image: "slide1.webp", alt: "Chien toiletté", title: "Promo du mois", order: 1 },
|
||
{ id: 2, image: "slide2.webp", alt: "Avant / Après", title: "", order: 2 },
|
||
{ id: 3, image: "slide3.webp", alt: "Coupe ciseaux", title: "Nouveauté", order: 3 }
|
||
];
|
||
|
||
|
||
const form = document.getElementById("editSlideForm");
|
||
const currentImage = document.getElementById("currentImage");
|
||
const newImage = document.getElementById("newImage");
|
||
const altField = document.getElementById("slideAlt");
|
||
const titleField = document.getElementById("slideTitle");
|
||
|
||
const errorMsg = document.getElementById("errorMsg");
|
||
const successMsg = document.getElementById("successMsg");
|
||
|
||
// Recuperation de l'id dans l'url
|
||
const urlParams = new URLSearchParams(window.location.search);
|
||
const slideId = parseInt(urlParams.get("id"));
|
||
|
||
// Trouver le slide correspondant
|
||
let slide = slides.find(s => s.id === slideId);
|
||
|
||
if (!slide) {
|
||
errorMsg.classList.remove("d-none");
|
||
errorMsg.textContent = "Slide introuvable.";
|
||
}
|
||
|
||
// Pré-remplir les champs
|
||
currentImage.src = "#";
|
||
altField.value = slide.alt;
|
||
titleField.value = slide.title;
|
||
|
||
|
||
// Validation + modification
|
||
form.addEventListener("submit", function(e) {
|
||
e.preventDefault();
|
||
|
||
errorMsg.classList.add("d-none");
|
||
successMsg.classList.add("d-none");
|
||
|
||
// Vérifier ALT obligatoire
|
||
if (altField.value.trim() === "") {
|
||
errorMsg.textContent = "Le texte ALT est obligatoire.";
|
||
errorMsg.classList.remove("d-none");
|
||
return;
|
||
}
|
||
|
||
// Vérifier la nouvelle image si elle existe
|
||
if (newImage.files.length > 0) {
|
||
const file = newImage.files[0];
|
||
const validFormats = ["image/jpeg", "image/png", "image/webp"];
|
||
|
||
if (!validFormats.includes(file.type)) {
|
||
errorMsg.textContent = "Format d'image invalide. JPG, PNG et WEBP acceptés.";
|
||
errorMsg.classList.remove("d-none");
|
||
return;
|
||
}
|
||
|
||
// Simuler remplacement de l’image
|
||
slide.image = file.name;
|
||
}
|
||
|
||
// Mettre à jour les données
|
||
slide.alt = altField.value.trim();
|
||
slide.title = titleField.value.trim();
|
||
|
||
successMsg.classList.remove("d-none");
|
||
|
||
console.log("Slide modifié :", slide);
|
||
|
||
// Redirection après succès
|
||
setTimeout(() => {
|
||
window.location.href = "../liste_slider/liste_slider.html";
|
||
}, 1500);
|
||
});
|