Files
maquette_backoffice/prestations/slider/modifier_slider/modifier_slider.js

78 lines
2.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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 limage
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);
});