Merge branch 'main' into david

This commit is contained in:
2025-12-12 07:40:34 +01:00
27 changed files with 1530 additions and 636 deletions

163
blog/html/accueil_blog.html Normal file
View File

@@ -0,0 +1,163 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin |Modifier le blog</title>
<link href="../../node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../node_modules/bs-icon/icons.css">
<link rel="stylesheet" href="../../css/style.css">
</head>
<body>
<header>
<nav class="navbar navbar-expand-xxl bg-body-tertiary">
<div class="container-fluid align-items-center">
<a class="navbar-brand" href="#">L'Il'eau chiens - Admin</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active left-label" aria-current="page" href="#">Blog</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Boutique</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Prestations</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">FAQ</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Fiche de renseignements</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Partenaires</a>
</li>
</ul>
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-megaphone me-1"></i> Message d'actu</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-box-arrow-up-right me-1"></i> Voir le site</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-gear me-1"></i> Configuration</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="userMenu" role="button"
data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-person-circle me-1"></i> <span id="userFirstName">Prénom</span>
</a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userMenu">
<li><a class="dropdown-item" href="#">Profil</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li><a class="dropdown-item" href="#">Sortir</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</header>
<main class="my-5 fs-6">
<div class="container">
<header>
<h1 class="title fs-2">Modifier la page blog</h1>
</header>
<main>
<section class="mb-5 section-categories">
<h2 class="my-4 fs-3">Liste des catégories</h2>
<!-- Message succès catégories -->
<div id="successCategoriesMsg" class="alert alert-success d-none"></div>
<!-- Bouton ajouter catégorie -->
<div class="d-flex justify-content-start mb-4">
<a href="ajouter_categorie.html" class="btn btn-primary">Ajouter une catégorie</a>
</div>
<!-- Tableau catégories -->
<table class="table table-striped table-hover">
<thead class="table-dark">
<tr>
<th>Nom</th>
<th class="text-end">Actions</th>
</tr>
</thead>
<tbody id="categoriesTableBody">
<!-- rempli en JS -->
</tbody>
</table>
</section>
<section class="section-articles">
<h2 class="my-4 fs-3">Liste des articles</h2>
<!-- Message succès articles -->
<div id="successArticlesMsg" class="alert alert-success d-none"></div>
<!-- Bouton ajouter article -->
<div class="d-flex justify-content-start mb-4">
<a href="ajouter_article.html" class="btn btn-primary">Ajouter un article</a>
</div>
<!-- Tableau articles -->
<table class="table table-striped table-hover">
<thead class="table-dark">
<tr>
<th>Titre</th>
<th class="text-end">Actions</th>
</tr>
</thead>
<tbody id="articlesTableBody">
<tr>
<td>Mon premier article</td>
<td class="text-end">
<a href="modifier_article.html"
class="btn btn-sm btn-outline-primary me-1">Modifier</a>
<button class="btn btn-sm btn-outline-danger delete-btn">Supprimer</button>
</td>
</tr>
<tr>
<td>Mon deuxième article</td>
<td class="text-end">
<a href="modifier_article.html"
class="btn btn-sm btn-outline-primary me-1">Modifier</a>
<button class="btn btn-sm btn-outline-danger delete-btn">Supprimer</button>
</td>
</tr>
</tbody>
</table>
</section>
</main>
</div>
</main>
<script src="../js/liste_categorie.js"></script>
<script src="../js/liste_articles.js"></script>
<script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
</body>

View File

@@ -7,26 +7,71 @@
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">
<script src="https://cdn.ckeditor.com/ckeditor5/39.0.1/classic/ckeditor.js"></script> <script src="https://cdn.ckeditor.com/ckeditor5/39.0.1/classic/ckeditor.js"></script>
<script src="https://cdn.ckeditor.com/ckeditor5/39.0.1/classic/translations/fr.js"></script> <script src="https://cdn.ckeditor.com/ckeditor5/39.0.1/classic/translations/fr.js"></script>
<link rel="stylesheet" href="../../css/blog.css">
<style> <style>
body {
background: #f4f6f9;
}
.container {
max-width: 700px;
margin: 40px auto;
}
.ck-editor__editable {
min-height: 350px;
}
</style> </style>
</head> </head>
<body> <body>
<!-- HEADER -->
<header>
<nav class="navbar navbar-expand-xxl bg-body-tertiary shadow-sm">
<div class="container-fluid align-items-center">
<a class="navbar-brand" href="#">L'Il'eau chiens - Admin</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<!-- MENU GAUCHE -->
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item"><a class="nav-link active" href="#">Blog</a></li>
<li class="nav-item"><a class="nav-link" href="#">Boutique</a></li>
<li class="nav-item"><a class="nav-link" href="#">Prestations</a></li>
<li class="nav-item"><a class="nav-link" href="#">FAQ</a></li>
<li class="nav-item"><a class="nav-link" href="#">Fiche de renseignements</a></li>
<li class="nav-item"><a class="nav-link" href="#">Partenaires</a></li>
</ul>
<!-- MENU DROIT -->
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-megaphone me-1"></i> Message d'actu</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-box-arrow-up-right me-1"></i> Voir le site</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-gear me-1"></i> Configuration</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="userMenu" data-bs-toggle="dropdown">
<i class="bi bi-person-circle me-1"></i> <span id="userFirstName">Prénom</span>
</a>
<ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" href="#">Profil</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Sortir</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</header>
<div class="container"> <div class="container">
<h2 class="mb-5 text-center">Ajouter un article</h2> <h2 class="mb-5 text-center">Ajouter un article</h2>
<form id="ajouterArticleForm"> <form id="ajouterArticleForm">
@@ -48,17 +93,18 @@
<!-- Catégorie --> <!-- Catégorie -->
<div class="mb-3"> <div class="mb-3">
<label class="form-label fw-bold">Catégorie de l'article</label> <label class="form-label fw-bold">Catégorie de l'article (obligatoire)</label>
<input list="categories" id="articleCategory" class="form-control" placeholder="Entrez une catégorie"> <select id="articleCategory" class="form-select" required>
<option value="" disabled selected>Choisissez une catégorie</option>
<datalist id="categories"> <option value="actualités">Actualités</option>
<option value="actualités"> <option value="chien">Chien</option>
<option value="chien"> <option value="chat">Chat</option>
<option value="chat"> <option value="boutique">Boutique</option>
<option value="boutique"> </select>
</datalist>
</div> </div>
<!-- Titre --> <!-- Titre -->
<div class="mb-4"> <div class="mb-4">
<label class="form-label fw-bold">Titre de l'article (obligatoire)</label> <label class="form-label fw-bold">Titre de l'article (obligatoire)</label>
@@ -84,13 +130,13 @@
<!--Publié--> <!--Publié-->
<div class="form-check mb-3"> <div class="form-check mb-3">
<input class="form-check-input" type="checkbox" id="articlePublished"> <input class="form-check-input" type="checkbox" id="articlePublished">
<label class="form-check-label" for="articlePublished">Publié (sera publié sur le blog)</label> <label class="form-check-label" for="articlePublished">Publié (sera publié sur le facebook)</label>
</div> </div>
<!--Boutons--> <!--Boutons-->
<div class="d-flex gap-3 mt-4"> <div class="d-flex gap-3 mt-4">
<a href="../html/liste_article.html" class="btn btn-secondary w-50">Annuler</a> <a href="../html/accueil_blog.html" class="btn btn-secondary w-50">Annuler</a>
<button type="submit" class="btn btn-primary w-50">Ajouter</button> <button type="submit" class="btn btn-primary w-50">Ajouter</button>
</div> </div>
@@ -98,26 +144,23 @@
</div> </div>
<script src="../js/ajouter_article.js"></script> <script src="../js/ajouter_article.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.tiny.cloud/1/1up68ybfp3crmpssl9o7pu6d0e8v3okcnsinhoujnmak7wft/tinymce/6/tinymce.min.js" referrerpolicy="origin"></script>
<script> <script>
tinymce.init({
ClassicEditor selector: '#articleContent',
.create(document.querySelector('#articleContent'), { height: 400,
language: 'fr', language: 'fr',
toolbar: [ plugins: 'lists fullscreen',
'heading', toolbar: 'undo redo | bold italic underline | bullist numlist | fullscreen'
'bold', 'italic', 'underline',
'bulletedList', 'numberedList',
'undo', 'redo'
]
})
.catch(error => {
console.error(error);
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@@ -12,13 +12,66 @@
} }
.container{ .container{
max-width: 600px;
margin-top: 50px; margin-top: 50px;
} }
</style> </style>
</head> </head>
<body> <body>
<!-- HEADER -->
<header>
<nav class="navbar navbar-expand-xxl bg-body-tertiary shadow-sm">
<div class="container-fluid align-items-center">
<a class="navbar-brand" href="#">L'Il'eau chiens - Admin</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<!-- MENU GAUCHE -->
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item"><a class="nav-link active" href="#">Blog</a></li>
<li class="nav-item"><a class="nav-link" href="#">Boutique</a></li>
<li class="nav-item"><a class="nav-link" href="#">Prestations</a></li>
<li class="nav-item"><a class="nav-link" href="#">FAQ</a></li>
<li class="nav-item"><a class="nav-link" href="#">Fiche de renseignements</a></li>
<li class="nav-item"><a class="nav-link" href="#">Partenaires</a></li>
</ul>
<!-- MENU DROIT -->
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-megaphone me-1"></i> Message d'actu</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-box-arrow-up-right me-1"></i> Voir le site</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-gear me-1"></i> Configuration</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="userMenu" data-bs-toggle="dropdown">
<i class="bi bi-person-circle me-1"></i> <span id="userFirstName">Prénom</span>
</a>
<ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" href="#">Profil</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Sortir</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</header>
<div class="container"> <div class="container">
<h2 class="mb-5 text-center">Ajouter une catégorie</h2> <h2 class="mb-5 text-center">Ajouter une catégorie</h2>
@@ -44,14 +97,14 @@
</div> </div>
<div class="d-flex gap-3 mt-4"> <div class="d-flex gap-3 mt-4">
<a href="../../../blog/categories/liste_categorie/liste_categorie.html" class="btn btn-secondary w-50">Annuler</a> <a href="../html/accueil_blog.html" class="btn btn-secondary w-50">Annuler</a>
<button type="submit" class="btn btn-primary w-50">Ajouter</button> <button type="submit" class="btn btn-primary w-50">Ajouter</button>
</div> </div>
</form> </form>
</div> </div>
<script src="../js/ajouter_categorie.js"></script> <script src="../js/ajouter_categorie.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -1,67 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Liste des article</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">
<style>
body {
background: #f4f6f9;
}
.container {
margin-top: 60px;
}
</style>
</head>
<body>
<div class="container">
<div class="d-flex justify-content-between align-items-center mb-4">
<h2 class="mb-0">Listes des articles</h2>
<a href="ajouter_article.html" class="btn btn-primary">Ajouter un article</a>
</div>
<table class="table table-bordered table-hover bg-white">
<thead class="table-light">
<tr>
<th>Titre</th>
<th>Catégorie</th>
<th>Publié</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr>
<td>Mon premier article</td>
<td>Chien</td>
<td>Oui</td>
<td>
<a href="voir_article.html" class="btn btn-sm btn-outline-secondary">Voir</a>
<a href="../html/modifier_article.html" class="btn btn-sm btn-outline-primary">Modifier</a>
<button class="btn btn-sm btn-outline-danger delete-btn">Supprimer</button>
</td>
</tr>
<tr>
<td>Mon deuxième article</td>
<td>Chat</td>
<td>Oui</td>
<td>
<a href="voir_article.html" class="btn btn-sm btn-outline-secondary">Voir</a>
<a href="../html/modifier_article.html" class="btn btn-sm btn-outline-primary">Modifier</a>
<button class="btn btn-sm btn-outline-danger delete-btn">Supprimer</button>
</td>
</tr>
</tbody>
</table>
</div>
<script src="../js/liste_articles.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@@ -1,56 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Liste des catégories</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">
<style>
body {
background: #f4f6f9;
padding: 30px;
}
.container {
max-width: 800px;
margin-top: 40px;
}
</style>
</head>
<body>
<div class="container">
<h2 class="text-center mb-4">Liste des catégories</h2>
<!-- Message succès -->
<div id="successMsg" class="alert alert-success d-none"></div>
<!-- Bouton ajouter -->
<div class="d-flex justify-content-end mb-4">
<a href="../html/ajouter_categorie.html" class="btn btn-primary">
Ajouter une catégorie
</a>
</div>
<!-- Tableau -->
<table class="table table-striped table-hover">
<thead class="table-dark">
<tr>
<th>Nom</th>
<th>Description</th>
<th class="text-center">Actions</th>
</tr>
</thead>
<tbody id="categoriesTableBody">
<!-- rempli en JS -->
</tbody>
</table>
</div>
<script src="../js/liste_categorie.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

View File

@@ -14,7 +14,7 @@
background: #f4f6f9; background: #f4f6f9;
} }
.container { .container {
max-width: 700px;
margin-top: 40px; margin-top: 40px;
} }
.preview-img { .preview-img {
@@ -29,6 +29,60 @@
<body> <body>
<!-- HEADER -->
<header>
<nav class="navbar navbar-expand-xxl bg-body-tertiary shadow-sm">
<div class="container-fluid align-items-center">
<a class="navbar-brand" href="#">L'Il'eau chiens - Admin</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<!-- MENU GAUCHE -->
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item"><a class="nav-link active" href="#">Blog</a></li>
<li class="nav-item"><a class="nav-link" href="#">Boutique</a></li>
<li class="nav-item"><a class="nav-link" href="#">Prestations</a></li>
<li class="nav-item"><a class="nav-link" href="#">FAQ</a></li>
<li class="nav-item"><a class="nav-link" href="#">Fiche de renseignements</a></li>
<li class="nav-item"><a class="nav-link" href="#">Partenaires</a></li>
</ul>
<!-- MENU DROIT -->
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-megaphone me-1"></i> Message d'actu</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-box-arrow-up-right me-1"></i> Voir le site</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-gear me-1"></i> Configuration</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="userMenu" data-bs-toggle="dropdown">
<i class="bi bi-person-circle me-1"></i> <span id="userFirstName">Prénom</span>
</a>
<ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" href="#">Profil</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Sortir</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</header>
<div class="container"> <div class="container">
<h2 class="mb-4 text-center">Modifier un article</h2> <h2 class="mb-4 text-center">Modifier un article</h2>
@@ -98,12 +152,12 @@
<!--Publié--> <!--Publié-->
<div class="form-check mb-3"> <div class="form-check mb-3">
<input class="form-check-input" type="checkbox" id="articlePublished" checked> <input class="form-check-input" type="checkbox" id="articlePublished" checked>
<label class="form-check-label">Publié</label> <label class="form-check-label">Publié (sera publié sur facebook)</label>
</div> </div>
<!--Boutons--> <!--Boutons-->
<div class="d-flex gap-3 mt-4"> <div class="d-flex gap-3 mt-4">
<a href="../html/liste_article.html" class="btn btn-secondary w-50">Annuler</a> <a href="../../blog/html/accueil_blog.html" class="btn btn-secondary w-50">Annuler</a>
<button type="submit" class="btn btn-primary w-50">Enregistrer</button> <button type="submit" class="btn btn-primary w-50">Enregistrer</button>
</div> </div>
@@ -125,7 +179,7 @@
</script> </script>
<script src="../js/modifier_article.js"></script> <script src="../js/modifier_article.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -5,26 +5,68 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Modifier une catégorie</title> <title>Modifier une catégorie</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="../../css/blog.css">
<style>
body {
background: #f4f6f981;
}
.container {
max-width: 600px;
margin: 50px auto;
}
</style>
</head> </head>
<body> <body>
<!-- HEADER -->
<header>
<nav class="navbar navbar-expand-xxl bg-body-tertiary shadow-sm">
<div class="container-fluid align-items-center">
<a class="navbar-brand" href="#">L'Il'eau chiens - Admin</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<!-- MENU GAUCHE -->
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item"><a class="nav-link active" href="#">Blog</a></li>
<li class="nav-item"><a class="nav-link" href="#">Boutique</a></li>
<li class="nav-item"><a class="nav-link" href="#">Prestations</a></li>
<li class="nav-item"><a class="nav-link" href="#">FAQ</a></li>
<li class="nav-item"><a class="nav-link" href="#">Fiche de renseignements</a></li>
<li class="nav-item"><a class="nav-link" href="#">Partenaires</a></li>
</ul>
<!-- MENU DROIT -->
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-megaphone me-1"></i> Message d'actu</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-box-arrow-up-right me-1"></i> Voir le site</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-gear me-1"></i> Configuration</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="userMenu" data-bs-toggle="dropdown">
<i class="bi bi-person-circle me-1"></i> <span id="userFirstName">Prénom</span>
</a>
<ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" href="#">Profil</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Sortir</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</header>
<div class="container"> <div class="container">
<h2 class="mb-5 text-center">Modifier une catégorie</h2> <h2 class="mb-5 text-center">Modifier une catégorie</h2>
<div id="errorMsg" class="alert alert-danger d-none">Veuillez ezmplir tous les champs obligatoires</div>
<div id="successMsg" class="alert alert-success d-none">La catégorie a été modifiée avec succès !</div>
<form id="modifierCategorie"> <form id="modifierCategorie">
@@ -42,7 +84,7 @@
</div> </div>
<div class="d-flex gap-3 mt-4"> <div class="d-flex gap-3 mt-4">
<a href="../../categories/liste_categorie/liste_categorie.html" class="btn btn-secondary w-50">Annuler</a> <a href="../html/accueil_blog.html" class="btn btn-secondary w-50">Annuler</a>
<button type="submit" class="btn btn-primary w-50">Enregistrer</button> <button type="submit" class="btn btn-primary w-50">Enregistrer</button>
</div> </div>
@@ -50,7 +92,7 @@
</div> </div>
<script src="../js/modifier_categorie.js"></script> <script src="../js/modifier_categorie.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>

View File

@@ -1,7 +1,6 @@
const form = document.getElementById('ajouterArticleForm'); const form = document.getElementById('ajouterArticleForm');
const imgField = document.getElementById('articleImage'); const imgField = document.getElementById('articleImage');
const titleField = document.getElementById('articleTitle'); const titleField = document.getElementById('articleTitle');
const contentField = document.getElementById('articleContent');
const categoryField = document.getElementById('articleCategory'); const categoryField = document.getElementById('articleCategory');
const publishedField = document.getElementById('articlePublished'); const publishedField = document.getElementById('articlePublished');
@@ -18,6 +17,9 @@ form.addEventListener('submit', function(e) {
const titre = titleField.value.trim().toLowerCase(); const titre = titleField.value.trim().toLowerCase();
const fichierImage = imgField.files[0]; const fichierImage = imgField.files[0];
const contenu = tinymce.get("articleContent").getContent();
const categorie = categoryField.value;
const published = publishedField.checked; // récupère la case cochée
// Reset messages // Reset messages
errorEmpty.classList.add('d-none'); errorEmpty.classList.add('d-none');
@@ -25,8 +27,16 @@ form.addEventListener('submit', function(e) {
errorExists.classList.add('d-none'); errorExists.classList.add('d-none');
successMsg.classList.add('d-none'); successMsg.classList.add('d-none');
// Catégorie obligatoire
if (categorie === "") {
errorEmpty.textContent = "Veuillez choisir une catégorie.";
errorEmpty.classList.remove('d-none');
return;
}
// Titre obligatoire // Titre obligatoire
if (titre === "") { if (titre === "") {
errorEmpty.textContent = "Le titre de l'article est obligatoire.";
errorEmpty.classList.remove('d-none'); errorEmpty.classList.remove('d-none');
return; return;
} }
@@ -37,6 +47,13 @@ form.addEventListener('submit', function(e) {
return; return;
} }
// Contenu obligatoire
if (contenu.trim() === "") {
errorEmpty.textContent = "Le contenu de l'article ne peut pas être vide.";
errorEmpty.classList.remove('d-none');
return;
}
// Image invalide // Image invalide
if (fichierImage) { if (fichierImage) {
const validFormats = ['image/jpeg', 'image/png']; const validFormats = ['image/jpeg', 'image/png'];
@@ -49,11 +66,41 @@ form.addEventListener('submit', function(e) {
// Simuler enregistrement // Simuler enregistrement
titreExistants.push(titre); titreExistants.push(titre);
// CRÉATION DE L'ARTICLE
const nouvelArticle = {
id: Date.now(),
titre: titleField.value.trim(),
contenu: contenu,
categorie: categorie,
published: published, // valeur TRUE/FALSE pour afficher le badge Facebook
date: new Date().toISOString()
};
// SAUVEGARDE DANS LOCALSTORAGE
let articles = JSON.parse(localStorage.getItem("articles")) || [];
articles.push(nouvelArticle);
localStorage.setItem("articles", JSON.stringify(articles));
console.log("Article enregistré :", nouvelArticle);
// Succès // Succès
successMsg.classList.remove('d-none'); successMsg.classList.remove('d-none');
// Redirection après 1 seconde // Redirection
setTimeout(() => { setTimeout(() => {
window.location.href = "../html/liste_article.html"; window.location.href = "../html/accueil_blog.html";
}, 1000); }, 1000);
}); });
// TinyMCE INIT
tinymce.init({
selector: '#articleContent',
height: 400,
language: 'fr',
plugins: 'lists fullscreen',
toolbar: 'undo redo | bold italic underline | bullist numlist | fullscreen'
});

View File

@@ -40,7 +40,7 @@ existingCategories.push(nom);
// Redirection après 1 seconde // Redirection après 1 seconde
setTimeout(() => { setTimeout(() => {
window.location.href = "../html/liste_categorie.html"; window.location.href = "../html/accueil_blog.html";
}, 1000); }, 1000);

View File

@@ -1,14 +1,67 @@
// Sélecteur du tableau
const articlesTableBody = document.getElementById("articlesTableBody");
// Charger les articles depuis le localStorage
let articles = JSON.parse(localStorage.getItem("articles")) || [];
// Fonction d'affichage des articles
function afficherArticles() {
articlesTableBody.innerHTML = ""; // Nettoie le tableau
if (articles.length === 0) {
articlesTableBody.innerHTML = `
<tr>
<td colspan="2" class="text-center text-muted py-3">
Aucun article pour le moment.
</td>
</tr>
`;
return;
}
articles.forEach(article => {
const tr = document.createElement("tr");
tr.innerHTML = `
<td>
${article.titre}
${article.published ? '<span class="badge bg-primary ms-2">Publié Facebook</span>' : ''}
</td>
<td class="text-end">
<a href="modifier_article.html?id=${article.id}"
class="btn btn-sm btn-outline-primary me-1">Modifier</a>
<button class="btn btn-sm btn-outline-danger delete-btn" data-id="${article.id}">
Supprimer
</button>
</td>
`;
articlesTableBody.appendChild(tr);
});
}
// Gestion de suppression
document.addEventListener("click", function (e) { document.addEventListener("click", function (e) {
const btn = e.target.closest(".delete-btn"); const btn = e.target.closest(".delete-btn");
if (!btn) return; // on a cliqué ailleurs if (!btn) return;
// On récupère la ligne de l'article
const row = btn.closest("tr"); const row = btn.closest("tr");
const titre = row.querySelector("td").textContent.trim(); const titre = row.querySelector("td").textContent.trim();
const id = Number(btn.dataset.id);
if (confirm(`Voulez-vous vraiment supprimer l'article : "${titre}" ?`)) { if (confirm(`Voulez-vous vraiment supprimer l'article : "${titre}" ?`)) {
row.remove(); // supprime la ligne
// Supprimer dans le tableau local
articles = articles.filter(article => article.id !== id);
localStorage.setItem("articles", JSON.stringify(articles));
// Supprimer visuel
row.remove();
alert("Article supprimé !"); alert("Article supprimé !");
} }
}); });
// Lancer l'affichage dès que la page charge
afficherArticles();

View File

@@ -17,14 +17,15 @@ function afficherCategories() {
const row = ` const row = `
<tr> <tr>
<td>${cat.nom}</td> <td>${cat.nom}</td>
<td>${cat.description || "-"}</td>
<td class="text-center"> <td class="text-end">
<a href="../html/modifier_categorie.html?id=${cat.id}" class="btn btn-warning btn-sm"> <a href="../html/modifier_categorie.html?id=${cat.id}"
class="btn btn-sm btn-outline-primary me-1">
Modifier Modifier
</a> </a>
<button class="btn btn-danger btn-sm" onclick="supprimerCategorie(${index})"> <button class="btn btn-sm btn-outline-danger"
onclick="supprimerCategorie(${index})">
Supprimer Supprimer
</button> </button>
</td> </td>

View File

@@ -55,6 +55,6 @@ form.addEventListener("submit", function (e) {
// Redirection après succès // Redirection après succès
setTimeout(() => { setTimeout(() => {
window.location.href = "../html/liste_article.html"; window.location.href = "../../blog/html/accueil_blog.html";
}, 1500); }, 1500);
}); });

View File

@@ -1,26 +1,37 @@
const form = document.getElementById("modifierCategorie"); const form = document.getElementById("modifierCategorie");
const nameField = document.getElementById("categoryName"); const nameField = document.getElementById("categoryName");
const descField = document.getElementById("categorieDescription"); const descField = document.getElementById("categorieDescription");
const errorMsg = document.getElementById("errorMsg");
const successMsg = document.getElementById("successMsg"); // Fonction pour afficher un message Bootstrap
function showMessage(type, message) {
// Création de l'alert
const alert = document.createElement("div");
alert.className = `alert alert-${type} mt-3`;
alert.textContent = message;
// Ajout en haut du formulaire
form.prepend(alert);
// Suppression automatique après 2 secondes
setTimeout(() => {
alert.remove();
}, 2000);
}
form.addEventListener("submit", function (e) { form.addEventListener("submit", function (e) {
e.preventDefault(); e.preventDefault();
// Vérification des champs obligatoires // Vérification des champs obligatoires
if (nameField.value.trim() === "" || descField.value.trim() === "") { if (nameField.value.trim() === "" || descField.value.trim() === "") {
errorMsg.classList.remove("d-none"); showMessage("danger", "Veuillez remplir tous les champs obligatoires");
successMsg.classList.add("d-none");
return; return;
} }
// Succès // Message succès
errorMsg.classList.add("d-none"); showMessage("success", "La catégorie a été modifiée avec succès !");
successMsg.classList.remove("d-none");
// Redirection après succès // Redirection après succès
setTimeout(() => { setTimeout(() => {
window.location.href = "../html/liste_categorie.html"; window.location.href = "../html/accueil_blog.html";
}, 1500); }, 1500);
}); });

View File

@@ -1,13 +1,11 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Mot de passe oublié</title> <title>Mot de passe oublié</title>
<link <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" />
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
/>
<style> <style>
body { body {
@@ -17,45 +15,42 @@
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.forgot-password-card { .forgot-password-card {
width: 100%; width: 100%;
max-width: 380px; max-width: 380px;
} }
</style> </style>
</head> </head>
<body> <body>
<div class="card shadow forgot-password-card"> <div class="card shadow forgot-password-card">
<div class="card-body p-4"> <div class="card-body p-4">
<h3 class="text-center mb-4">Mot de passe oublié</h3> <h1 class="text-center mb-4 fs-3">Mot de passe oublié</h1>
<p> <p class="text text-muted mb-4">
Nous avons besoin de votre adresse mail pour pouvoir réinitialiser Nous avons besoin de votre adresse mail pour pouvoir réinitialiser
votre mot de passe. votre mot de passe.
</p> </p>
<form> <form>
<div class="mb-3"> <div class="mb-3">
<label class="form-label">Adresse e-mail</label> <label class="form-label" for="email">Adresse e-mail</label>
<input <input type="email" class="form-control" placeholder="exemple@mail.com" required />
type="email"
class="form-control"
placeholder="exemple@mail.com"
/>
</div> </div>
<button class="btn btn-primary w-100">
<button class="btn btn-primary w-100" type="submit">
Réinitialiser le mot de passe Réinitialiser le mot de passe
</button> </button>
<div class="text-center mt-3"> <div class="text-center mt-3">
<a <a href="../html/page_de_connexion.html" class="text-decoration-none">Retour à la connexion</a>
href="../html/page_de_connexion.html"
class="text-decoration-none"
>Retour à la connexion</a
>
</div> </div>
</form> </form>
</div> </div>
</div> </div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -26,12 +26,23 @@
<body> <body>
<div class="card shadow login-card"> <div class="card shadow login-card">
<div class="card-body p-4"> <div class="card-body p-4">
<h3 class="text-center mb-4">Connexion Admin</h3> <h1 class="text-center mb-4 fs-3">Connexion Admin</h1>
<form> <form>
<div class="mb-3"> <div class="mb-3">
<label class="form-label">Mot de passe</label> <label class="form-label">Adresse e-mail </label>
<input
type="email"
class="form-control"
id="textInput"
/>
</div>
<div class="mb-3">
<label class="form-label" for="password">Mot de passe</label>
<input <input
type="password" type="password"
class="form-control" class="form-control"
@@ -44,7 +55,7 @@
</label> </label>
</div> </div>
<button class="btn btn-primary w-100">Se connecter</button> <button class="btn btn-primary w-100" type="submit">Se connecter</button>
<div class="text-center mt-3"> <div class="text-center mt-3">
<a href="../html/mot_de_passe_oublie.html" class="text-decoration-none">Mot de passe oublié ?</a> <a href="../html/mot_de_passe_oublie.html" class="text-decoration-none">Mot de passe oublié ?</a>
@@ -53,6 +64,7 @@
</div> </div>
</div> </div>
<script src="../js/page_de_connexion.js"></script> <script src="../js/page_de_connexion.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -26,8 +26,8 @@
<body> <body>
<div class="card shadow reset-password-card"> <div class="card shadow reset-password-card">
<div class="card-body p-4"> <div class="card-body p-4">
<h3 class="text-center mb-4">Nouveau mot de passe</h3> <h1 class="text-center mb-4 fs-3">Nouveau mot de passe</h1>
<p class="text-center text-muted mb-4"> <p class="text text-muted mb-4">
Pour réinitialiser votre mot de passe, veuillez saisir un nouveau mot Pour réinitialiser votre mot de passe, veuillez saisir un nouveau mot
de passe ainsi qu'une confirmation. de passe ainsi qu'une confirmation.
@@ -35,14 +35,14 @@
<div <div
id="errorMsg" id="errorMsg"
class="alert alert-danger text-center" class="alert alert-danger text-center fs-1"
style="display: none" style="display: none"
> >
Les mots de passe ne correspondent pas. Les mots de passe ne correspondent pas.
</div> </div>
<form id="resetForm"> <form id="resetForm">
<div class="mb-3"> <div class="mb-4">
<label class="form-label" <label class="form-label"
>Nouveau mot de passe (minimum 8 caractères)</label >Nouveau mot de passe (minimum 8 caractères)</label
> >
@@ -57,7 +57,7 @@
<div class="mb-3"> <div class="mb-3">
<label class="form-label" <label class="form-label"
>Confirmer le mot de passe (minimum 8 caractères)</label >Confirmer le mot de passe</label
> >
<input <input
type="password" type="password"
@@ -86,6 +86,11 @@
<button class="btn btn-primary w-100" type="submit"> <button class="btn btn-primary w-100" type="submit">
Changer le mot de passe Changer le mot de passe
</button> </button>
<div class="text-center mt-3">
<a
href="../html/page_de_connexion.html"
class="text-decoration-none"
>Retour à la connexion</a
</form> </form>
</div> </div>
</div> </div>

10
css/avant_apres.css Normal file
View File

@@ -0,0 +1,10 @@
/*=============================================================================
Image Preview Styles
=============================================================================*/
.img-preview {
max-width: 150px;
border-radius: 8px;
display: none;
/* cachée tant qu'il n'y a pas d'image */
}

11
css/blog.css Normal file
View File

@@ -0,0 +1,11 @@
body {
background: #f4f6f9;
}
.container {
margin: 40px auto;
}
.ck-editor__editable {
min-height: 350px;
}

41
css/style.css Normal file
View File

@@ -0,0 +1,41 @@
/*=============================================================================
Header Navbar Styles
=============================================================================*/
.navbar-brand {
font-size: 1.2rem;
line-height: 1;
padding-top: 0.25rem;
padding-bottom: 0.25rem;
}
.brand-sep {
height: 1.2rem;
}
@media (max-width: 1399.98px) {
.navbar .nav-item {
background-color: var(--bs-light);
border: 1px solid var(--bs-border-color);
border-radius: .25rem;
margin-bottom: .375rem;
text-align: center;
}
#navbarSupportedContent>ul:first-child {
margin-top: .5rem;
}
#navbarSupportedContent>ul:last-child {
margin-top: 1rem;
}
.bi {
display: none;
}
}

3
package-lock.json generated
View File

@@ -76,8 +76,7 @@
"node_modules/scheduler": { "node_modules/scheduler": {
"version": "0.27.0", "version": "0.27.0",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
"integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="
"peer": true
}, },
"node_modules/tinymce": { "node_modules/tinymce": {
"version": "8.2.2", "version": "8.2.2",

View File

@@ -4,28 +4,91 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ajouter une paire avant/après</title> <title>Ajouter un résultat avant/après</title>
<link href="../../node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../node_modules/bs-icon/icons.css">
<link rel="stylesheet" href="../../css/style.css">
<link rel="stylesheet" href="../../css/avant_apres.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">
<style>
.img-preview {
max-width: 150px;
border-radius: 8px;
display: none; /* cachée tant qu'il n'y a pas d'image */
}
</style>
</head> </head>
<body class="bg-light py-4 py-md-5">
<div class="container" style="max-width: 800px;"> <body>
<h1 class="mb-4 mb-md-5 text-center">Ajouter une paire avant/après</h1> <header>
<nav class="navbar navbar-expand-xxl bg-body-tertiary">
<div class="container-fluid align-items-center">
<a class="navbar-brand" href="#">L'Il'eau chiens - Admin</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active left-label" aria-current="page" href="#">Blog</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Boutique</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Prestations</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">FAQ</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Fiche de renseignements</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Partenaires</a>
</li>
</ul>
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-megaphone me-1"></i> Message d'actu</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-box-arrow-up-right me-1"></i> Voir le site</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-gear me-1"></i> Configuration</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="userMenu" role="button"
data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-person-circle me-1"></i> <span id="userFirstName">Prénom</span>
</a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userMenu">
<li><a class="dropdown-item" href="#">Profil</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li><a class="dropdown-item" href="#">Sortir</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</header>
<main class="my-5 fs-6">
<div class="container">
<header>
<h1 class="title fs-2">Ajouter un résultat en images (Avant / Après)</h1>
<!-- Message succès --> <!-- Message succès -->
<div id="successMsg" class="alert alert-success d-none"> <div id="successMsg" class="alert alert-success d-none">
Nouvelle paire ajoutée avec succès ! Nouveau résultat ajouté avec succès !
</div> </div>
<!-- Message erreur --> <!-- Message erreur -->
@@ -37,18 +100,20 @@
<div id="errorFormat" class="alert alert-danger d-none"> <div id="errorFormat" class="alert alert-danger d-none">
Format d'image invalide. Formats acceptés : JPG, PNG, WEBP. Format d'image invalide. Formats acceptés : JPG, PNG, WEBP.
</div> </div>
</header>
<div class="section">
<form id="addPairForm" class="mt-3"> <form id="addPairForm" class="mt-3">
<!-- Titre / label --> <!-- Titre -->
<div class="mb-3"> <div class="mb-3">
<label class="form-label" for="pairTitle">Titre de la paire (obligatoire)</label> <label class="form-label fw-bold" for="pairTitle">Titre du résultat (obligatoire)</label>
<input type="text" id="pairTitle" class="form-control" required> <input type="text" id="pairTitle" class="form-control" required>
</div> </div>
<!-- Type --> <!-- Type -->
<div class="mb-3"> <div class="mb-3">
<label class="form-label" for="pairType">Type (obligatoire)</label> <label class="form-label fw-bold" for="pairType">Type (obligatoire)</label>
<select id="pairType" class="form-select" required> <select id="pairType" class="form-select" required>
<option value="">-- Choisir --</option> <option value="">-- Choisir --</option>
<option value="Chien">Chien</option> <option value="Chien">Chien</option>
@@ -58,7 +123,9 @@
<!-- Image AVANT --> <!-- Image AVANT -->
<div class="mb-4"> <div class="mb-4">
<label class="form-label" for="beforeImage">Image AVANT (obligatoire)</label> <label class="form-label fw-bold" for="beforeImage">Image AVANT (obligatoire, formats acceptés :
jpg,
png, webp)</label>
<input type="file" id="beforeImage" class="form-control" accept="image/*" required> <input type="file" id="beforeImage" class="form-control" accept="image/*" required>
<img id="beforePreview" class="img-preview border mt-2" src="#" alt="image avant"> <img id="beforePreview" class="img-preview border mt-2" src="#" alt="image avant">
@@ -66,7 +133,9 @@
<!-- Image APRÈS --> <!-- Image APRÈS -->
<div class="mb-4"> <div class="mb-4">
<label class="form-label" for="afterImage">Image APRÈS (obligatoire)</label> <label class="form-label fw-bold" for="afterImage">Image APRÈS (obligatoire, formats acceptés :
jpg,
png, webp)</label>
<input type="file" id="afterImage" class="form-control" accept="image/*" required> <input type="file" id="afterImage" class="form-control" accept="image/*" required>
<img id="afterPreview" class="img-preview border mt-2" src="#" alt="image après"> <img id="afterPreview" class="img-preview border mt-2" src="#" alt="image après">
@@ -75,7 +144,7 @@
<!-- Boutons : empilés en mobile, côte à côte en md+ --> <!-- Boutons : empilés en mobile, côte à côte en md+ -->
<div class="row mt-4 g-3"> <div class="row mt-4 g-3">
<div class="col-12 col-md-6"> <div class="col-12 col-md-6">
<a href="../liste_avant_apres/liste_avant_apres.html" class="btn btn-secondary w-100"> <a href="../html/liste_avant_apres.html" class="btn btn-secondary w-100">
Annuler Annuler
</a> </a>
</div> </div>
@@ -87,12 +156,15 @@
</div> </div>
</form> </form>
</div>
<script src="ajouter_avant_apres.js"></script> </div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> </div>
</main>
<script src="../js/ajouter_avant_apres.js"></script>
<script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -4,23 +4,92 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Liste des paires avant/après</title> <title>Liste des résultats avant/après</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"> <link href="../../node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../node_modules/bs-icon/icons.css">
<link rel="stylesheet" href="../../css/style.css">
<link rel="stylesheet" href="../../css/avant_apres.css">
</head> </head>
<body class="bg-light py-4 py-md-5"> <body>
<div class="container" style="max-width: 1000px;"> <header>
<h1 class="mb-4 mb-md-5 text-center">Liste des paires avant/après</h1> <nav class="navbar navbar-expand-xxl bg-body-tertiary">
<div class="container-fluid align-items-center">
<a class="navbar-brand" href="#">L'Il'eau chiens - Admin</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active left-label" aria-current="page" href="#">Blog</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Boutique</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Prestations</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">FAQ</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Fiche de renseignements</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Partenaires</a>
</li>
</ul>
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-megaphone me-1"></i> Message d'actu</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-box-arrow-up-right me-1"></i> Voir le site</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-gear me-1"></i> Configuration</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="userMenu" role="button" data-bs-toggle="dropdown"
aria-expanded="false">
<i class="bi bi-person-circle me-1"></i> <span id="userFirstName">Prénom</span>
</a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userMenu">
<li><a class="dropdown-item" href="#">Profil</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li><a class="dropdown-item" href="#">Sortir</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</header>
<main class="my-5 fs-6">
<div class="container">
<header>
<h1 class="title fs-2 my-4">Liste des résultats avant/après</h1>
<!-- Message succès --> <!-- Message succès -->
<div id="succesDeleteMsg" class="alert alert-success d-none"> <div id="succesDeleteMsg" class="alert alert-success d-none">
Paire supprimée avec succès ! Résultat supprimé avec succès !
</div> </div>
</header>
<div class="d-flex justify-content-end mb-4"> <div class="section">
<a href="../ajouter_avant_apres/ajouter_avant_apres.html" class="btn btn-primary">
Ajouter une paire <div class="d-flex justify-content-start mb-4">
<a href="../html/ajouter_avant_apres.html" class="btn btn-primary">
Ajouter un résultat
</a> </a>
</div> </div>
@@ -29,11 +98,8 @@
<table class="table table-striped table-hover align-middle mb-0"> <table class="table table-striped table-hover align-middle mb-0">
<thead class="table-dark"> <thead class="table-dark">
<tr> <tr>
<th>Titre paire</th> <th>Titre du résultat</th>
<th>Type</th> <th class="text-end">Actions</th>
<th>Avant</th>
<th>Après</th>
<th class="text-center">Actions</th>
</tr> </tr>
</thead> </thead>
<tbody id="prestationTableBody"> <tbody id="prestationTableBody">
@@ -41,12 +107,11 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div>
</div> </div>
<!--- modale de suppression-->
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
@@ -57,7 +122,7 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
Voulez-vous vraiment supprimer cette paire avant/après ? Voulez-vous vraiment supprimer ce résultat avant/après ?
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
@@ -69,15 +134,10 @@
</div> </div>
</div> </div>
</main>
<script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="../js/liste_avant_apres.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script src="liste_avant_apres.js"></script>
</body> </body>

View File

@@ -1,25 +1,31 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Liste des slides</title> <title>Liste des slides</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="../../node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../node_modules/bs-icon/icons.css">
<link rel="stylesheet" href="../../css/style.css">
<style> <style>
body { body {
background: #f4f6f9; background: #f4f6f9;
padding: 40px; padding: 40px;
} }
.container { .container {
max-width: 900px; max-width: 900px;
} }
.miniature { .miniature {
width: 90px; width: 90px;
height: 60px; height: 60px;
object-fit: cover; object-fit: cover;
border-radius: 5px; border-radius: 5px;
} }
.action-buttons button, .action-buttons button,
.action-buttons a { .action-buttons a {
margin-right: 8px; margin-right: 8px;
@@ -27,6 +33,69 @@
</style> </style>
</head> </head>
<header>
<nav class="navbar navbar-expand-xxl bg-body-tertiary">
<div class="container-fluid align-items-center">
<a class="navbar-brand" href="#">L'Il'eau chiens - Admin</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active left-label" aria-current="page" href="#">Blog</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Boutique</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Prestations</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">FAQ</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Fiche de renseignements</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Partenaires</a>
</li>
</ul>
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-megaphone me-1"></i> Message d'actu</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-box-arrow-up-right me-1"></i> Voir le site</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-gear me-1"></i> Configuration</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="userMenu" role="button" data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-person-circle me-1"></i> <span id="userFirstName">Prénom</span>
</a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userMenu">
<li><a class="dropdown-item" href="#">Profil</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Sortir</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</header>
<body> <body>
<div class="container"> <div class="container">
@@ -37,8 +106,8 @@
<div id="successMsg" class="alert alert-success d-none"></div> <div id="successMsg" class="alert alert-success d-none"></div>
<!-- Bouton ajouter --> <!-- Bouton ajouter -->
<div class="d-flex justify-content-end mb-4"> <div class="d-flex justify-content-start mb-4">
<a href="../../slider/ajouter_slider/ajouter_slider.html" class="btn btn-primary">Ajouter une image au slider</a> <a href="../html/ajouter_slider.html" class="btn btn-primary">Ajouter une image au slider</a>
</div> </div>
<table class="table table-striped table-hover align-middle"> <table class="table table-striped table-hover align-middle">
@@ -58,8 +127,9 @@
</table> </table>
</div> </div>
<script src="liste_slider.js"></script> <script src="../js/liste_slider.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -4,25 +4,86 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Modifier une paire avant/après</title> <title>Modifier un résultat avant/après</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"> <link href="../../node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../node_modules/bs-icon/icons.css">
<style> <link rel="stylesheet" href="../../css/style.css">
.img-preview { <link rel="stylesheet" href="../../css/avant_apres.css">
max-width: 150px;
border-radius: 8px;
}
</style>
</head> </head>
<body class="bg-light py-4 py-md-5"> <body>
<div class="container" style="max-width: 800px;"> <header>
<h2 class="mb-4 mb-md-5 text-center">Modifier une paire avant/après</h2> <nav class="navbar navbar-expand-xxl bg-body-tertiary">
<div class="container-fluid align-items-center">
<a class="navbar-brand" href="#">L'Il'eau chiens - Admin</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active left-label" aria-current="page" href="#">Blog</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Boutique</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Prestations</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">FAQ</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Fiche de renseignements</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Partenaires</a>
</li>
</ul>
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-megaphone me-1"></i> Message d'actu</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-box-arrow-up-right me-1"></i> Voir le site</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-gear me-1"></i> Configuration</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="userMenu" role="button"
data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-person-circle me-1"></i> <span id="userFirstName">Prénom</span>
</a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userMenu">
<li><a class="dropdown-item" href="#">Profil</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li><a class="dropdown-item" href="#">Sortir</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</header>
<main class="my-5 fs-6">
<div class="container">
<header>
<h1 class="title fs-2">Modifier un résultat en images (Avant / Après)</h1>
<!-- Messages --> <!-- Messages -->
<div id="successMsg" class="alert alert-success d-none"> <div id="successMsg" class="alert alert-success d-none">
La paire avant/après a été modifiée avec succès. Le résultat a été modifié avec succès.
</div> </div>
<div id="errorMsg" class="alert alert-danger d-none"> <div id="errorMsg" class="alert alert-danger d-none">
Une erreur est survenue. Merci de vérifier le formulaire. Une erreur est survenue. Merci de vérifier le formulaire.
@@ -32,6 +93,10 @@
<div id="errorFormat" class="alert alert-danger d-none"> <div id="errorFormat" class="alert alert-danger d-none">
Format d'image invalide. Formats acceptés : JPG, PNG, WEBP. Format d'image invalide. Formats acceptés : JPG, PNG, WEBP.
</div> </div>
</header>
<div class="section">
<!-- Formulaire de modification --> <!-- Formulaire de modification -->
<form id="editPairForm" class="mt-3"> <form id="editPairForm" class="mt-3">
@@ -39,15 +104,16 @@
<!-- ID caché --> <!-- ID caché -->
<input type="hidden" id="pairId"> <input type="hidden" id="pairId">
<!-- Titre / label --> <!-- Titre-->
<div class="mb-3"> <div class="mb-3">
<label for="pairTitle" class="form-label">Titre / label de la paire (obligatoire)</label> <label for="pairTitle" class="form-label fw-bold">Titre du résultat
(obligatoire)</label>
<input type="text" class="form-control" id="pairTitle" required> <input type="text" class="form-control" id="pairTitle" required>
</div> </div>
<!-- Type --> <!-- Type -->
<div class="mb-3"> <div class="mb-3">
<label class="form-label" for="pairType">Type (obligatoire)</label> <label class="form-label fw-bold" for="pairType">Type (obligatoire)</label>
<select id="pairType" class="form-select" required> <select id="pairType" class="form-select" required>
<option value="">-- Choisir --</option> <option value="">-- Choisir --</option>
<option value="Chien">Chien</option> <option value="Chien">Chien</option>
@@ -55,29 +121,31 @@
</select> </select>
</div> </div>
<!-- Images AVANT / APRÈS sur une ligne en md+, empilées en mobile --> <!-- Images AVANT / APRÈS -->
<div class="row gy-4 mb-4"> <div class="row gy-4 mb-4">
<!-- Image AVANT --> <!-- Image AVANT -->
<div class="col-12 col-md-6"> <div class="col-12">
<label class="form-label" for="beforeImage">Image AVANT (obligatoire)</label> <label class="form-label fw-bold" for="beforeImage">
Image AVANT (obligatoire, formats acceptés : jpg, png, webp)
</label>
<input type="file" class="form-control" id="beforeImage" accept="image/*" required> <input type="file" class="form-control" id="beforeImage" accept="image/*" required>
<!-- Aperçu éventuel -->
<img id="beforePreview" class="img-preview mt-2 d-none" src="#" alt="Aperçu avant"> <img id="beforePreview" class="img-preview mt-2 d-none" src="#" alt="Aperçu avant">
</div> </div>
<!-- Image APRÈS --> <!-- Image APRÈS -->
<div class="col-12 col-md-6"> <div class="col-12">
<label class="form-label" for="afterImage">Image APRÈS (obligatoire)</label> <label class="form-label fw-bold" for="afterImage">
Image APRÈS (obligatoire, formats acceptés : jpg, png, webp)
</label>
<input type="file" class="form-control" id="afterImage" accept="image/*" required> <input type="file" class="form-control" id="afterImage" accept="image/*" required>
<!-- Aperçu éventuel -->
<img id="afterPreview" class="img-preview mt-2 d-none" src="#" alt="Aperçu après"> <img id="afterPreview" class="img-preview mt-2 d-none" src="#" alt="Aperçu après">
</div> </div>
</div> </div>
<!-- Boutons : empilés en mobile, côte à côte en md+ --> <!-- Boutons -->
<div class="row mt-4 g-3"> <div class="row mt-4 g-3">
<div class="col-12 col-md-6"> <div class="col-12 col-md-6">
<a href="../liste_avant_apres/liste_avant_apres.html" class="btn btn-secondary w-100"> <a href="../html/liste_avant_apres.html" class="btn btn-secondary w-100">
Annuler Annuler
</a> </a>
</div> </div>
@@ -89,10 +157,14 @@
</div> </div>
</form> </form>
</div>
<script src="modifier_avant_apres.js"></script> </div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> </div>
</main>
<script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="../js/modifier_avant_apres.js"></script>
</body> </body>
</html> </html>

View File

@@ -1,74 +1,292 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin - Prestations</title> <title>CE sera le titre de la page</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="../../node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../node_modules/bs-icon/icons.css">
<style> <link rel="stylesheet" href="../../css/style.css">
body {
background: #f4f6f9;
padding: 40px;
}
.menu-card {
transition: 0.2s;
cursor: pointer;
}
.menu-card:hover {
transform: scale(1.03);
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.12);
}
.menu-icon {
font-size: 40px;
}
</style>
</head> </head>
<body> <body>
<header>
<nav class="navbar navbar-expand-xxl bg-body-tertiary">
<div class="container-fluid align-items-center">
<a class="navbar-brand" href="#">L'Il'eau chiens - Admin</a>
<div class="container text-center">
<h2 class="mb-5">Gestion des prestations</h2>
<div class="row g-4">
<!-- Prestations --> <button class="navbar-toggler" type="button" data-bs-toggle="collapse"
<div class="col-md-4"> data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
<a href="../liste_prestation/liste_prestation.html" class="text-decoration-none"> aria-expanded="false" aria-label="Toggle navigation">
<div class="card p-4 menu-card"> <span class="navbar-toggler-icon"></span>
<div class="menu-icon">💼</div> </button>
<h4 class="mt-3 text-dark">Gérer les prestations</h4> <div class="collapse navbar-collapse" id="navbarSupportedContent">
<p class="text-muted">Ajouter, modifier, supprimer les prestations.</p> <ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active left-label" aria-current="page" href="#">Blog</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Boutique</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Prestations</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">FAQ</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Fiche de renseignements</a>
</li>
<li class="nav-item">
<a class="nav-link left-label" href="#">Partenaires</a>
</li>
</ul>
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-megaphone me-1"></i> Message d'actu</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-box-arrow-up-right me-1"></i> Voir le site</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#"><i class="bi bi-gear me-1"></i> Configuration</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="userMenu" role="button"
data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-person-circle me-1"></i> <span id="userFirstName">Prénom</span>
</a>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userMenu">
<li><a class="dropdown-item" href="#">Profil</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li><a class="dropdown-item" href="#">Sortir</a></li>
</ul>
</li>
</ul>
</div> </div>
</div>
</nav>
</header>
<main class="my-5 fs-6">
<div class="container">
<header>
<h1 class="title fs-2">Gérer la page prestations</h1>
</header>
<main>
<section class="prestations">
<h2 class="fs-3">Gérer les prestations</h2>
<div class="accordion" id="accordionExample">
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button" type="button" data-bs-toggle="collapse"
data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Gèrer les prestations et leur catégorie
</button>
</h2>
<div id="collapseOne" class="accordion-collapse collapse show"
data-bs-parent="#accordionExample">
<div class="accordion-body">
Contenu de l'accordéon 1
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Gérer le slider
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse"
data-bs-parent="#accordionExample">
<div class="accordion-body">
Contenu de l'accordéon 2
</div>
</div>
</div>
</div>
<!--
<section class="categories-prestations">
<h3 class="fs-4">Titres des cartes</h3>
<div class="mb-3">
<a href="../html/ajouter_avant_apres.html" class="btn btn-primary btn-sm">
Ajouter une catégorie
</a> </a>
</div> </div>
<!-- Slider -->
<div class="col-md-4">
<a href="../slider/liste_slider/liste_slider.html" class="text-decoration-none"> <table class="table table-striped table-hover">
<div class="card p-4 menu-card"> <section class="slider">
<div class="menu-icon">🎞️</div> <details open>
<h4 class="mt-3 text-dark">Gérer le slider</h4> <summary class="fs-5 fw-semibold">Gérer le slider</summary>
<p class="text-muted">Images du slider de la page Prestations chiens.</p> <h2 class="fs-3 mt-2">Gérer le slider</h2>
<div class="mb-3">
<a href="" class="btn btn-primary btn-sm">Ajouter une slide</a>
</div> </div>
<table class="table table-striped table-hover">
<tr>
<td>Toilletage complet</td>
<td class="text-end">À partir de 60€</td>
<td class="text-end">
<a href="" class="btn btn-sm btn-outline-primary me-1">Modifier</a>
<button class="btn btn-sm btn-outline-danger delete-btn">Supprimer</button>
</td>
</tr>
<tr>
<td>Toilletage complet</td>
<td class="text-end">À partir de 60€</td>
<td class="text-end">
<a href="" class="btn btn-sm btn-outline-primary me-1">Modifier</a>
<button class="btn btn-sm btn-outline-danger delete-btn">Supprimer</button>
</td>
</tr>
</tbody>
</table>
</section>
<section class="categories-prestations">
<h3 class="fs-4">Les prestations</h3>
<div class="mb-3">
<a href="../html/ajouter_avant_apres.html" class="btn btn-sm btn-primary">
Ajouter une prestation
</table>
</details>
</div>
<section class="galerie-avant-apres">
<details open>
<summary class="fs-5 fw-semibold">Gérer la galerie avant/après</summary>
<h2 class="fs-3 mt-2">Gérer la galerie avant/après</h2>
<div class="mb-3">
<a href="../html/ajouter_avant_apres.html" class="btn btn-primary">
Ajouter un résultat avant/après
</a> </a>
</div> </div>
<table class="table table-striped table-hover">
<tr>
<td>Un nom de prestation</td>
<!-- Avant / Après --> <td class="text-end">
<div class="col-md-4"> <a href="" class="btn btn-sm btn-outline-primary me-1">Modifier</a>
<a href="../avant_apres/liste_avant_apres/liste_avant_apres.html" class="text-decoration-none"> <button class="btn btn-sm btn-outline-danger delete-btn">Supprimer</button>
<div class="card p-4 menu-card"> </td>
<div class="menu-icon">🖼️</div> </tr>
<h4 class="mt-3 text-dark">Galerie Avant / Après</h4> <tr>
<p class="text-muted">Ajouter, modifier ou supprimer les photos.</p> <td>prestation spécifique</td>
<td class="text-end">
<a href="" class="btn btn-sm btn-outline-primary me-1">Modifier</a>
<button class="btn btn-sm btn-outline-danger delete-btn">Supprimer</button>
</td>
</tr>
</tbody>
</table>
</section>
</section>
<section class="slider">
</tbody>
</table>
</details>
</section>
</details>
<h2 class="fs-3 mt-2">Gérer le slider</h2>
<div class="mb-3">
<a href="" class="btn btn-primary btn-sm">Ajouter une slide</a>
</div> </div>
<table class="table table-striped table-hover">
<thead class="table-dark">
<tr>
<th>Titre de la slide</th>
<th class="text-end">Actions</th>
</tr>
</thead>
<tbody>
<tr>
<td>Slide 1 : coupe griffe</td>
<td class="text-end">
<a href="" class="btn btn-sm btn-outline-primary me-1">Modifier</a>
<button class="btn btn-sm btn-outline-danger delete-btn">Supprimer</button>
</td>
</tr>
<tr>
<td>Slide 2 : coupe ciseaux</td>
<td class="text-end">
<a href="" class="btn btn-sm btn-outline-primary me-1">Modifier</a>
<button class="btn btn-sm btn-outline-danger delete-btn">Supprimer</button>
</td>
</tr>
</tbody>
</table>
</section>
<section class="galerie-avant-apres">
<details close>
<summary class="fs-5 fw-semibold">
<h2 class="fs-3 mt-2">Gérer la galerie avant/après</h2>
<div class="mb-3">
<a href="../html/ajouter_avant_apres.html" class="btn btn-primary">
Ajouter un résultat avant/après
</a> </a>
</div> </div>
<table class="table table-striped table-hover">
<thead class="table-dark">
<tr>
<th>Titre du résultat</th>
<th class="text-end">Actions</th>
</tr>
</thead>
<tbody>
<tr>
<td>Petit chien poils longs</td>
<td class="text-end">
<a href="../html/modifier_avant_apres.html"
class="btn btn-sm btn-outline-primary me-1">Modifier</a>
<button class="btn btn-sm btn-outline-danger delete-btn">Supprimer</button>
</td>
</tr>
<tr>
<td>Coupe ciseaux</td>
<td class="text-end">
<a href="../html/modifier_avant_apres.html"
class="btn btn-sm btn-outline-primary me-1">Modifier</a>
<button class="btn btn-sm btn-outline-danger delete-btn">Supprimer</button>
</td>
</tr>
</tbody>
</table>
</div> </summary>
</div> </details>
</section>
-->
</main>
</div>
</main>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
</body> </body>
<script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
</html> </html>

View File

@@ -1,28 +1,26 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="fr"> <html lang="fr">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Voir la paire avant/après</title> <title>Voir le résultat avant/après</title>
<link href="../../node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../node_modules/bs-icon/icons.css">
<link rel="stylesheet" href="../../css/style.css">
<link rel="stylesheet" href="../../css/avant_apres.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">
<style>
.img-preview {
max-width: 250px;
border-radius: 10px;
}
</style>
</head> </head>
<body class="bg-light py-4 py-md-5">
<div class="container" style="max-width: 800px;"> <body>
<h1 class="mb-4 mb-md-5 text-center">Détails de la paire avant/après</h1> <div class="container">
<h1 class="mb-4 text-center">Détails du résultat en images (Avant / Après)</h1>
<!-- Message erreur --> <!-- Message erreur -->
<div id="errorMsg" class="alert alert-danger d-none"> <div id="errorMsg" class="alert alert-danger d-none">
Impossible d'afficher cette paire. Impossible d'afficher ce résultat.
</div> </div>
<div id="detailsSection" class="mt-3"> <div id="detailsSection" class="mt-3">
@@ -47,7 +45,7 @@
<!-- Bouton retour --> <!-- Bouton retour -->
<div class="text-center mt-4"> <div class="text-center mt-4">
<a href="../liste_avant_apres/liste_avant_apres.html" class="btn btn-secondary"> <a href="../html/liste_avant_apres.html" class="btn btn-secondary">
Retour à la liste Retour à la liste
</a> </a>
</div> </div>
@@ -56,9 +54,10 @@
</div> </div>
<script src="voir_avant_apres.js"></script> <script src="../js/voir_avant_apres.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script> <script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
</body> </body>
</html>
</html>

View File

@@ -5,16 +5,14 @@ let galleryPairs = [
{ {
id: 1, id: 1,
titre: "Petit chien poils longs", titre: "Petit chien poils longs",
type: "Chien",
avant: "../../img/avant1.jpg",
apres: "../../img/apres1.jpg"
}, },
{ {
id: 2, id: 2,
titre: "Coupe ciseaux", titre: "Coupe ciseaux",
type: "Chat",
avant: "../../img/avant2.jpg",
apres: "../../img/apres2.jpg"
} }
]; ];
@@ -41,33 +39,21 @@ function displayPairs() {
row.innerHTML = ` row.innerHTML = `
<td>${pair.titre}</td> <td>${pair.titre}</td>
<td>${pair.type}</td>
<td>
<img src="${pair.avant}" class="img-thumbnail" style="max-width: 80px;">
</td>
<td>
<img src="${pair.apres}" class="img-thumbnail" style="max-width: 80px;">
</td>
<td class="text-center text-md-start"> <td class="text-center text-md-start">
<div class="d-flex flex-column flex-md-row justify-content-center justify-content-md-start gap-2"> <div class="d-flex flex-column flex-md-row justify-content-center justify-content-md-end gap-2">
<!-- Bouton Voir -->
<a href="../voir_avant_apres/voir_avant_apres.html?id=${pair.id}"
class="btn btn-info btn-sm">
Voir
</a>
<!-- Bouton Modifier --> <!-- Bouton Modifier -->
<a href="../modifier_avant_apres/modifier_avant_apres.html?id=${pair.id}" <a href="../html/modifier_avant_apres.html?id=${pair.id}"
class="btn btn-warning btn-sm"> class="btn btn-outline-primary btn-sm">
Modifier Modifier
</a> </a>
<!-- Bouton Supprimer --> <!-- Bouton Supprimer -->
<button class="btn btn-danger btn-sm" onclick="openDeleteModal(${pair.id})"> <button class="btn btn-outline-danger btn-sm" onclick="openDeleteModal(${pair.id})">
Supprimer Supprimer
</button> </button>
</div> </div>