diff --git a/blog/html/ajouter_article.html b/blog/html/ajouter_article.html index eb8cd59..1fc257d 100644 --- a/blog/html/ajouter_article.html +++ b/blog/html/ajouter_article.html @@ -4,22 +4,14 @@ Ajouter un article + - - - - - - - + -
-
+

Ajouter un article

+
- - -
Le titre de l'article est obligatoire
- - -
- Format d'image invalide. Formats acceptés : JPG, PNG -
- - -
Ce titre existe déjà. Choisissez un autre titre.
- - -
Article ajouté avec succès !
+ +
-
- - -
+
+ + +
+ +
+ + +
+ +
+ + +
- -
- - -
+ +
+ + +
- -
- - -
- - -
- - -
- - - - - - +
- - + +
- - +
- Annuler - + Annuler +
-
- - - - - - - diff --git a/blog/html/ajouter_categorie.html b/blog/html/ajouter_categorie.html index ae80d6a..6e0a7a1 100644 --- a/blog/html/ajouter_categorie.html +++ b/blog/html/ajouter_categorie.html @@ -4,22 +4,11 @@ Ajouter une catégorie - - - + + -
-
-

Ajouter une catégorie

+
+

Ajouter une catégorie

- -
Le nom de catégorie est obligatoire.
- - -
Cette catégorie existe déjà. Veuillez en choisir une autre.
- - -
Catégorie ajoutée avec succès !
- -
- - -
- -
- -
- - -
- -
- Annuler - -
-
-
- - - +
+ +
+ +
+ + +
+ +
+ + +
+ +
+ Annuler + +
+
+
+ + + + - \ No newline at end of file + diff --git a/blog/html/modifier_article.html b/blog/html/modifier_article.html index caa594d..23a8b96 100644 --- a/blog/html/modifier_article.html +++ b/blog/html/modifier_article.html @@ -4,32 +4,16 @@ Modifier un article - - - + + + - + -
-
-

Modifier un article

- - -
- g Le titre de l'article est obligatoire. -
- - -
- Format d'image invalide. Formats acceptés : JPG, PNG, GIF. -
- - -
- Ce titre existe déjà. Veuillez en choisir un autre. -
- - -
- L'article a été modifié avec succès ! -
- - -
+

Modifier un article

+
- -
- - -
+ - -
- - -
+ +
+ + +
- -
- - + +
+ + +
- - + +
+ + + + +
-
+ +
+ +
+ apercu image + +
+
- - -
- Image actuelle - -
+ +
+ + +
- -
- - -
- - -
- Annuler - -
- -
+ +
+ Annuler + +
+
- - - + + + - - - diff --git a/blog/html/modifier_categorie.html b/blog/html/modifier_categorie.html index b1ced3a..368db98 100644 --- a/blog/html/modifier_categorie.html +++ b/blog/html/modifier_categorie.html @@ -4,7 +4,7 @@ Modifier une catégorie - + diff --git a/blog/js/ajouter_article.js b/blog/js/ajouter_article.js index 298d7d1..5da8a12 100644 --- a/blog/js/ajouter_article.js +++ b/blog/js/ajouter_article.js @@ -1,106 +1,110 @@ -const form = document.getElementById('ajouterArticleForm'); -const imgField = document.getElementById('articleImage'); -const titleField = document.getElementById('articleTitle'); -const categoryField = document.getElementById('articleCategory'); -const publishedField = document.getElementById('articlePublished'); +const form = document.getElementById("ajouterArticleForm"); +const messages = document.getElementById("messages"); -const errorEmpty = document.getElementById('errorEmpty'); -const errorImage = document.getElementById('errorImage'); -const errorExists = document.getElementById('errorExists'); -const successMsg = document.getElementById('successMsg'); +const imgField = document.getElementById("articleImage"); +const titleField = document.getElementById("articleTitle"); +const categoryField = document.getElementById("articleCategory"); +const publishedField = document.getElementById("articlePublished"); // Simulation BDD -const titreExistants = ['décoration noel', 'coupe de chien']; +const titresExistants = ["décoration noel", "coupe de chien"]; -form.addEventListener('submit', function(e) { + +function showMessage(type, text) { + messages.innerHTML = ""; + + const div = document.createElement("div"); + div.className = `alert alert-${type}`; + div.textContent = text; + + messages.appendChild(div); +} + + +function imageValide(file) { + if (!file) return true; + return ["image/jpeg", "image/png"].includes(file.type); +} + + +form.addEventListener("submit", function (e) { e.preventDefault(); + messages.innerHTML = ""; - const titre = titleField.value.trim().toLowerCase(); - const fichierImage = imgField.files[0]; - const contenu = tinymce.get("articleContent").getContent(); + const titre = titleField.value.trim(); + const titreLower = titre.toLowerCase(); + const contenu = tinymce.get("articleContent").getContent().trim(); const categorie = categoryField.value; - const published = publishedField.checked; // récupère la case cochée - - // Reset messages - errorEmpty.classList.add('d-none'); - errorImage.classList.add('d-none'); - errorExists.classList.add('d-none'); - successMsg.classList.add('d-none'); + const image = imgField.files[0]; + const published = publishedField.checked; // Catégorie obligatoire - if (categorie === "") { - errorEmpty.textContent = "Veuillez choisir une catégorie."; - errorEmpty.classList.remove('d-none'); + if (!categorie) { + showMessage("danger", "Veuillez choisir une catégorie."); return; } // Titre obligatoire - if (titre === "") { - errorEmpty.textContent = "Le titre de l'article est obligatoire."; - errorEmpty.classList.remove('d-none'); + if (!titre) { + showMessage("danger", "Le titre de l'article est obligatoire."); return; } - // Titre déjà existant - if (titreExistants.includes(titre)) { - errorExists.classList.remove('d-none'); + // Titre existant + if (titresExistants.includes(titreLower)) { + showMessage("danger", "Ce titre existe déjà. Choisissez-en un autre."); return; } // Contenu obligatoire - if (contenu.trim() === "") { - errorEmpty.textContent = "Le contenu de l'article ne peut pas être vide."; - errorEmpty.classList.remove('d-none'); + if (!contenu) { + showMessage("danger", "Le contenu de l'article ne peut pas être vide."); return; } - // Image invalide - if (fichierImage) { - const validFormats = ['image/jpeg', 'image/png']; - if (!validFormats.includes(fichierImage.type)) { - errorImage.classList.remove('d-none'); - return; - } + // Image valide + if (!imageValide(image)) { + showMessage("danger", "Format d'image invalide. JPG ou PNG uniquement."); + return; } - // Simuler enregistrement - titreExistants.push(titre); + // Enregistrement titre simulé + titresExistants.push(titreLower); - - // CRÉATION DE L'ARTICLE - + // Création article const nouvelArticle = { id: Date.now(), - titre: titleField.value.trim(), - contenu: contenu, - categorie: categorie, - published: published, // valeur TRUE/FALSE pour afficher le badge Facebook + titre, + contenu, + categorie, + published, date: new Date().toISOString() }; - - // SAUVEGARDE DANS LOCALSTORAGE - - let articles = JSON.parse(localStorage.getItem("articles")) || []; + // LocalStorage + const articles = JSON.parse(localStorage.getItem("articles")) || []; articles.push(nouvelArticle); localStorage.setItem("articles", JSON.stringify(articles)); - console.log("Article enregistré :", nouvelArticle); + showMessage("success", "Article ajouté avec succès !"); - // Succès - successMsg.classList.remove('d-none'); + // Reset + form.reset(); + tinymce.get("articleContent").setContent(""); // Redirection setTimeout(() => { window.location.href = "../html/accueil_blog.html"; - }, 1000); + }, 1500); }); -// TinyMCE INIT +/* ========================= + TinyMCE +========================= */ tinymce.init({ - selector: '#articleContent', + selector: "#articleContent", height: 400, - language: 'fr', - plugins: 'lists fullscreen', - toolbar: 'undo redo | bold italic underline | bullist numlist | fullscreen' + language: "fr", + plugins: "lists fullscreen", + toolbar: "undo redo | bold italic underline | bullist numlist | fullscreen" }); diff --git a/blog/js/ajouter_categorie.js b/blog/js/ajouter_categorie.js index dd7e34c..bc5a4aa 100644 --- a/blog/js/ajouter_categorie.js +++ b/blog/js/ajouter_categorie.js @@ -1,47 +1,52 @@ - const form = document.getElementById("addCategoryForm"); +const messages = document.getElementById("messages"); + const nameField = document.getElementById("categoryName"); const descField = document.getElementById("categoryDescription"); -const errorEmpty = document.getElementById("errorEmpty"); -const errorExists = document.getElementById("errorExists"); -const successMessage = document.getElementById("successMessage"); - -// Catégories existantes ( à remplacer en BD si besoin) +// Catégories existantes (simulation BDD) const existingCategories = ["Actualités", "Chien", "Chat", "Boutique"]; + +function showMessage(type, text) { + messages.innerHTML = ""; + + const div = document.createElement("div"); + div.className = `alert alert-${type}`; + div.textContent = text; + + messages.appendChild(div); +} + + form.addEventListener("submit", function (e) { e.preventDefault(); + messages.innerHTML = ""; const nom = nameField.value.trim(); - //Remettre tout a zero - errorEmpty.classList.add("d-none"); - errorExists.classList.add("d-none"); - successMessage.classList.add("d-none"); - - //Erreur champs vide - if (nom === "") { - errorEmpty.classList.remove("d-none"); + // Champ obligatoire + if (!nom) { + showMessage("danger", "Le nom de la catégorie est obligatoire."); return; } - //Erreur catégorie existante + // Catégorie existante if (existingCategories.includes(nom)) { - errorExists.classList.remove("d-none"); + showMessage("danger", "Cette catégorie existe déjà. Veuillez en choisir une autre."); return; } - // Succès -successMessage.classList.remove("d-none"); + // Ajout catégorie (simulation) + existingCategories.push(nom); -// Ajout d'une nouvelle catégorie -existingCategories.push(nom); + showMessage("success", "Catégorie ajoutée avec succès !"); -// Redirection après 1 seconde -setTimeout(() => { - window.location.href = "../html/accueil_blog.html"; -}, 1000); + // Reset formulaire + form.reset(); - -}); \ No newline at end of file + // Redirection + setTimeout(() => { + window.location.href = "../html/accueil_blog.html"; + }, 1500); +}); diff --git a/blog/js/modifier_article.js b/blog/js/modifier_article.js index fc53268..57d54c7 100644 --- a/blog/js/modifier_article.js +++ b/blog/js/modifier_article.js @@ -1,60 +1,74 @@ const form = document.getElementById("editArticleForm"); +const messages = document.getElementById("messages"); + const imgField = document.getElementById("articleImage"); const titleField = document.getElementById("articleTitle"); const contentField = document.getElementById("articleContent"); const categoryField = document.getElementById("articleCategory"); const publishedField = document.getElementById("articlePublished"); -const errorEmpty = document.getElementById("errorEmpty"); -const errorImage = document.getElementById("errorImage"); -const errorExists = document.getElementById("errorExists"); -const successMsg = document.getElementById("successMsg"); - -// Simulation BDD pour vérifier doublons +// Simulation BDD pour doublons const titresExistants = [ "article de test", "nouveautés chiens", - "actualité du mois", + "actualité du mois" ]; + +function showMessage(type, text) { + messages.innerHTML = ""; + + const div = document.createElement("div"); + div.className = `alert alert-${type}`; + div.textContent = text; + + messages.appendChild(div); +} + + +function imageValide(file) { + if (!file) return true; + return ["image/jpeg", "image/png", "image/gif"].includes(file.type); +} + + form.addEventListener("submit", function (e) { e.preventDefault(); + messages.innerHTML = ""; const titre = titleField.value.trim().toLowerCase(); - const fichierImage = imgField.files[0]; + const contenu = tinymce.get("articleContent").getContent().trim(); + const image = imgField.files[0]; - // Reset messages - errorEmpty.classList.add("d-none"); - errorImage.classList.add("d-none"); - errorExists.classList.add("d-none"); - successMsg.classList.add("d-none"); - - //Titre obligatoire - if (titre === "") { - errorEmpty.classList.remove("d-none"); + // Titre obligatoire + if (!titre) { + showMessage("danger", "Le titre de l'article est obligatoire."); return; } - // Titre déjà existant ? + // Titre existant if (titresExistants.includes(titre)) { - errorExists.classList.remove("d-none"); + showMessage("danger", "Ce titre existe déjà. Veuillez en choisir un autre."); return; } - //Vérification image - if (fichierImage) { - const validFormats = ["image/jpeg", "image/png", "image/gif"]; - if (!validFormats.includes(fichierImage.type)) { - errorImage.classList.remove("d-none"); - return; - } + // Contenu obligatoire + if (!contenu) { + showMessage("danger", "Le contenu de l'article ne peut pas être vide."); + return; + } + + // Image valide + if (!imageValide(image)) { + showMessage("danger", "Format d'image invalide. JPG, PNG ou GIF uniquement."); + return; } // Succès - successMsg.classList.remove("d-none"); + showMessage("success", "L'article a été modifié avec succès !"); - // Redirection après succès + // Redirection setTimeout(() => { - window.location.href = "../../blog/html/accueil_blog.html"; + window.location.href = "../../blog/html/accueil_blog.html"; }, 1500); }); diff --git a/citations/html/accueil.html b/citations/html/accueil.html new file mode 100644 index 0000000..b139a5e --- /dev/null +++ b/citations/html/accueil.html @@ -0,0 +1,174 @@ + + + + + + Citations - L'Il'eau chiens - Admin + + + + + + + + +
+ +
+ +
+
+
+

Liste des citations

+
+
+ + +
+

Citations chiens

+ + + + + + + + + + + + + + + + + +
CitationsActions
Le chien est le seul être sur terre qui vous aime plus qu'il ne s'aime lui-même. (Josh Billings) + Modifier + Supprimer +
Un chien est la seule chose sur terre qui vous aime plus qu'il ne s'aime lui-même. (Josh Billings) + Modifier + Supprimer +
+
+ +
+

Citations chats

+ + + + + + + + + + + + + + + + + +
CitationsActions
Le chien est le seul être sur terre qui vous aime plus qu'il ne s'aime lui-même. (Josh Billings) + Modifier + Supprimer +
Un chien est la seule chose sur terre qui vous aime plus qu'il ne s'aime lui-même. (Josh Billings) + Modifier + Supprimer +
+
+ +
+

Citations divers

+ + + + + + + + + + + + + + + + + +
CitationsActions
Le chien est le seul être sur terre qui vous aime plus qu'il ne s'aime lui-même. (Josh Billings) + Modifier + Supprimer +
Un chien est la seule chose sur terre qui vous aime plus qu'il ne s'aime lui-même. (Josh Billings) + Modifier + Supprimer +
+
+
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/citations/html/ajouter.html b/citations/html/ajouter.html new file mode 100644 index 0000000..0f457bb --- /dev/null +++ b/citations/html/ajouter.html @@ -0,0 +1,93 @@ + + + + + + + Ajouter une citation - L'Il'eau chiens - Admin + + + + + + + + +
+ +
+
+
+
+

Ajouter une citation

+
+
+
+
+ + +
+
+ + +
+
+ Annuler + +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/citations/html/modifier.html b/citations/html/modifier.html new file mode 100644 index 0000000..09f41d4 --- /dev/null +++ b/citations/html/modifier.html @@ -0,0 +1,93 @@ + + + + + + + Modifier une citation - L'Il'eau chiens - Admin + + + + + + + + +
+ +
+
+
+
+

Modifier une citation

+
+
+
+
+ + +
+
+ + +
+
+ Annuler + +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/css/citations.css b/css/citations.css new file mode 100644 index 0000000..e69de29 diff --git a/css/prestation.css b/css/prestation.css new file mode 100644 index 0000000..eba3746 --- /dev/null +++ b/css/prestation.css @@ -0,0 +1,2 @@ +body { background: #f4f6f981; } + .container { margin-top: 50px; } \ No newline at end of file diff --git a/css/style.css b/css/style.css index d591513..1f260a9 100644 --- a/css/style.css +++ b/css/style.css @@ -1,16 +1,19 @@ /*============================================================================= Header Navbar Styles =============================================================================*/ +a.nav-link{ + font-size: .95rem; +} .navbar-brand { - font-size: 1.2rem; + font-size: 1.1rem; line-height: 1; padding-top: 0.25rem; padding-bottom: 0.25rem; } .brand-sep { - height: 1.2rem; + height: .8rem; } diff --git a/header.html b/header.html index cc4095e..997d403 100644 --- a/header.html +++ b/header.html @@ -8,34 +8,9 @@ + - + @@ -67,11 +42,14 @@ FAQ + @@ -105,11 +83,11 @@
-

Titre de la page

+

Titre de la page

-
+
Contenu de la page -
+
diff --git a/js/confirmDelete.js b/js/confirmDelete.js new file mode 100644 index 0000000..97d5a16 --- /dev/null +++ b/js/confirmDelete.js @@ -0,0 +1,60 @@ + +/** + * confirmDelete.js + * + * Modal de confirmation générique pour les actions de suppression. + * + * Usage: + * 1. Ajouter data-bs-toggle="modal" et data-bs-target="#confirmDeleteModal" au lien de suppression. + * 2. Lors de la confirmation, l'attribut href du lien est utilisé pour la navigation (GET). + */ + + +(function(){ + + + let pendingHref = null; + let pendingModalId = '#confirmDeleteModal'; + + function getBootstrapModal(modalEl){ + //retourne l'instance Bootstrap Modal associée à modalEl, ou en crée une nouvelle si nécessaire + if (!modalEl || !window.bootstrap) return null; + return bootstrap.Modal.getInstance(modalEl) || new bootstrap.Modal(modalEl); + } + + document.addEventListener('click', function(e){ + const btn = e.target.closest('a[data-bs-toggle="modal"][data-bs-target]'); + if (!btn) return; + const target = btn.getAttribute('data-bs-target'); + + // Gérer les boutons de type suppression ; restreindre éventuellement en utilisant une classe CSS spécifique + // Pour un appariement plus strict, ajouter une classe dédiée et la vérifier ici. + e.preventDefault(); + pendingHref = btn.getAttribute('href'); + pendingModalId = btn.getAttribute('data-confirm-modal') || target || '#confirmDeleteModal'; + const modalEl = document.querySelector(pendingModalId); + const modal = getBootstrapModal(modalEl); + if (modal) modal.show(); + }); + + document.addEventListener('click', function(e){ + const confirmBtn = e.target.closest('#confirmDeleteBtn'); + if (!confirmBtn) return; + if (pendingHref && pendingHref !== '#' && pendingHref.trim() !== ''){ + window.location.assign(pendingHref); + return; // la navigation va se produire, arrêter le traitement ici + } + // Si aucun href n'est présent, fermer simplement le modal + const modalEl = document.querySelector(pendingModalId); + const modal = getBootstrapModal(modalEl); + if (modal) modal.hide(); + pendingHref = null; + pendingModalId = '#confirmDeleteModal'; + }); + + // Réinitialiser l'état stocké lorsque n'importe quel modal Bootstrap est caché + document.addEventListener('hidden.bs.modal', function(){ + pendingHref = null; + pendingModalId = '#confirmDeleteModal'; + }); +})(); diff --git a/js/contentReduct.js b/js/contentReduct.js new file mode 100644 index 0000000..b2671ce --- /dev/null +++ b/js/contentReduct.js @@ -0,0 +1,44 @@ +/** + * Réduit le contenu des cellules td des tableaux + */ + + + +const BREAKPOINT_SM = 1000; +const NB_CARACTERES = 40; +(() => { + // Récupère les cellules td (premier d'un tr) à traiter + const getTargetCells = () => { + const tbodyRows = Array.from(document.querySelectorAll("tbody tr")); + let cells = tbodyRows.map((row) => row.querySelector("td")).filter(Boolean); + if (cells.length === 0) { + const allRows = Array.from(document.querySelectorAll("tr")); + cells = allRows.map((row) => row.querySelector("td")).filter(Boolean); + } + return cells; + }; + + const tdElts = getTargetCells(); + + tdElts.forEach((td) => { + if (!td.dataset.fullText) { + td.dataset.fullText = td.textContent.trim(); + } + }); + + const applyTruncation = () => { + const narrow = window.innerWidth < BREAKPOINT_SM; + tdElts.forEach((td) => { + const full = td.dataset.fullText ?? td.textContent; + const text = (full || "").trim(); + if (narrow) { + td.textContent = text.length > 40 ? text.slice(0, NB_CARACTERES) + '...': text; + } else { + td.textContent = full; + } + }); + }; + + applyTruncation(); + window.addEventListener("resize", applyTruncation); +})(); \ No newline at end of file diff --git a/prestations/components/html/delete-composant.html b/prestations/components/html/delete-composant.html new file mode 100644 index 0000000..e71f7b8 --- /dev/null +++ b/prestations/components/html/delete-composant.html @@ -0,0 +1,25 @@ + + + + + \ No newline at end of file diff --git a/prestations/html/liste_slider.html b/prestations/components/html/header-composant.html similarity index 66% rename from prestations/html/liste_slider.html rename to prestations/components/html/header-composant.html index 9003512..c7f2f1a 100644 --- a/prestations/html/liste_slider.html +++ b/prestations/components/html/header-composant.html @@ -1,39 +1,39 @@ - - + - Liste des slides - - - + Header- composant - -
+ + + +
- - -
- -

Slider – Liste des images

- - -
- - - - - - - - - - - - - - - - - - -
ImageTexte ALTTitreOrdreActions
-
- - - - - \ No newline at end of file diff --git a/prestations/components/js/delete-composant.js b/prestations/components/js/delete-composant.js new file mode 100644 index 0000000..87907ff --- /dev/null +++ b/prestations/components/js/delete-composant.js @@ -0,0 +1,42 @@ +// Injection du modal +fetch("../components/html/delete-composant.html") + .then(res => { + if (!res.ok) throw new Error("Modal HTML introuvable"); + return res.text(); + }) + .then(html => { + document.getElementById("modal-placeholder").innerHTML = html; + initDeleteModalLogic(); + }) + .catch(err => console.error(err)); + +// Logique du modal +function initDeleteModalLogic() { + let rowToDelete = null; + + const modalElement = document.getElementById("deleteModal"); + const itemNameSpan = document.getElementById("itemName"); + const confirmBtn = document.getElementById("confirmDeleteBtn"); + + const deleteModal = new bootstrap.Modal(modalElement); + + document.body.addEventListener("click", (event) => { + const button = event.target.closest(".delete-btn"); + if (!button) return; + + rowToDelete = button.closest("tr"); + + const firstCell = rowToDelete.querySelector("td"); + const itemName = firstCell ? firstCell.textContent.trim() : "cet élément"; + + itemNameSpan.textContent = itemName; + deleteModal.show(); + }); + + confirmBtn.addEventListener("click", () => { + if (rowToDelete) rowToDelete.remove(); + rowToDelete = null; + deleteModal.hide(); + }); +} + diff --git a/prestations/components/js/header-composant.js b/prestations/components/js/header-composant.js new file mode 100644 index 0000000..3ee6180 --- /dev/null +++ b/prestations/components/js/header-composant.js @@ -0,0 +1,5 @@ +fetch("../components/html/header-composant.html") + .then(response => response.text()) + .then(data => { + document.getElementById("header-placeholder").innerHTML = data; + }); diff --git a/prestations/html/ajouter_avant_apres.html b/prestations/html/ajouter_avant_apres.html index be53e9e..72d119b 100644 --- a/prestations/html/ajouter_avant_apres.html +++ b/prestations/html/ajouter_avant_apres.html @@ -15,71 +15,7 @@ -
- - -
+
@@ -164,6 +100,7 @@ + diff --git a/prestations/html/ajouter_prestation.html b/prestations/html/ajouter_prestation.html index e1dbf2a..9dde8b7 100644 --- a/prestations/html/ajouter_prestation.html +++ b/prestations/html/ajouter_prestation.html @@ -1,88 +1,117 @@ - - Ajouter une catégorie - + Ajouter une prestation + + - + -
-

Ajouter une prestation

+
+ +
+
+

Ajouter une prestation

- -
+ +
+ + + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
-
+
-
- Annuler - -
- -
+
+ Annuler + +
+ +
- - + + - - \ No newline at end of file + diff --git a/prestations/html/ajouter_slider.html b/prestations/html/ajouter_slider.html index 10d870e..1d60d9a 100644 --- a/prestations/html/ajouter_slider.html +++ b/prestations/html/ajouter_slider.html @@ -1,74 +1,147 @@ - - - + + + Ajouter un slide + + + - + +
+ +
- -
- Format d'image invalide. Formats acceptés : JPG, PNG, WEBP. -
+
- -
- Slide ajouté avec succès ! -
+
+

Ajouter une image au slider

-
+ +
+
- - + +
- - + +
- - + +
- Annuler - + Annuler +
+
+
- - - - - - - + + + + + diff --git a/prestations/html/liste_avant_apres.html b/prestations/html/liste_avant_apres.html deleted file mode 100644 index 58fe8bc..0000000 --- a/prestations/html/liste_avant_apres.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - Liste des résultats avant/après - - - - - - - - -
- -
- -
-
-
-

Liste des résultats avant/après

- -
- Résultat supprimé avec succès ! -
-
- -
- - - - -
- - - - - - - - - - -
Titre du résultatActions
-
- -
-
- - - - -
- - - - - - - diff --git a/prestations/html/liste_prestation.html b/prestations/html/liste_prestation.html deleted file mode 100644 index da22fb1..0000000 --- a/prestations/html/liste_prestation.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - Liste des prestations - - - - - - - -
-

Liste des prestations

- - -
Prestation supprimée avec succès !
- - - - - - - - - - - - - - - - - - -
TitreTypeDescriptionTarifActions
-
- - - - - - - \ No newline at end of file diff --git a/prestations/html/modifier_avant_apres.html b/prestations/html/modifier_avant_apres.html index 3e77746..39a9aa3 100644 --- a/prestations/html/modifier_avant_apres.html +++ b/prestations/html/modifier_avant_apres.html @@ -5,76 +5,16 @@ Modifier un résultat avant/après - - - - + + + + -
- -
@@ -164,6 +104,7 @@ + diff --git a/prestations/html/modifier_prestation.html b/prestations/html/modifier_prestation.html index 19dc713..e825623 100644 --- a/prestations/html/modifier_prestation.html +++ b/prestations/html/modifier_prestation.html @@ -1,84 +1,98 @@ - - - + + + Modifier une prestation - + - - - + + + +
+ +
-

Modifier une prestation

+

Modifier une prestation

+ +
- -
Le titre est obligatoire.
-
Une erreur est survenue. Veuillez réessayer plus tard.
- - -
Prestation modifiée avec succès !
- -
- - -
- - -
- - -
- - -
- - - -
- - -
- - -
- -
- - -
-
- - -
- Annuler - + + +
+ +
- + +
+ + +
+ +
+ + +
+ + +
+ +
+ + +
+
+ + +
+ Annuler + +
+
- - - - - \ No newline at end of file + + + + diff --git a/prestations/html/modifier_slider.html b/prestations/html/modifier_slider.html index 9da99f9..d025876 100644 --- a/prestations/html/modifier_slider.html +++ b/prestations/html/modifier_slider.html @@ -8,6 +8,9 @@