feat:creation dossier components

This commit is contained in:
2025-12-12 11:27:58 +01:00
parent b77f82f216
commit f02c69449a
6 changed files with 6 additions and 5 deletions

View File

@@ -0,0 +1,25 @@
<!-- Modale de suppression -->
<div class="modal fade" id="deleteModal" tabindex="-1" aria-labelledby="deleteModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h2 class="modal-title fs-5" id="deleteModalLabel">Confirmer la suppression</h2>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fermer"></button>
</div>
<div class="modal-body">
Voulez-vous vraiment supprimer <strong id="itemName">cet élément</strong> ?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Annuler</button>
<button type="button" class="btn btn-danger" id="confirmDeleteBtn">Supprimer</button>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,100 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Header- composant</title>
<style>
.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;
}
}
</style>
</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>
</body>
</html>

View File

@@ -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();
});
}

View File

@@ -0,0 +1,5 @@
fetch("../components/html/header-composant.html")
.then(response => response.text())
.then(data => {
document.getElementById("header-placeholder").innerHTML = data;
});