62 lines
2.2 KiB
JavaScript
62 lines
2.2 KiB
JavaScript
document.addEventListener("DOMContentLoaded", () => {
|
|
// --- GESTION DES ONGLETS EXISTANTE ---
|
|
const navLinks = document.querySelectorAll(".nav-link");
|
|
const tabContents = document.querySelectorAll(".tab-content");
|
|
|
|
navLinks.forEach(link => {
|
|
link.addEventListener("click", (e) => {
|
|
e.preventDefault();
|
|
navLinks.forEach(l => l.classList.remove("active"));
|
|
tabContents.forEach(tc => tc.classList.remove("active"));
|
|
|
|
link.classList.add("active");
|
|
const tabId = link.getAttribute("data-tab");
|
|
document.getElementById(tabId).classList.add("active");
|
|
});
|
|
});
|
|
|
|
// --- OPTION 1 : DRAG & DROP ENGINE (AAA SOUVERAIN) ---
|
|
const draggables = document.querySelectorAll(".rym-draggable-workout");
|
|
const dropZones = document.querySelectorAll(".drop-zone");
|
|
|
|
draggables.forEach(draggable => {
|
|
draggable.addEventListener("dragstart", (e) => {
|
|
e.dataTransfer.setData("text/plain", draggable.id);
|
|
// Petit délai pour l'effet visuel de déplacement
|
|
setTimeout(() => {
|
|
draggable.style.display = "none";
|
|
}, 0);
|
|
});
|
|
|
|
draggable.addEventListener("dragend", () => {
|
|
draggable.style.display = "block";
|
|
});
|
|
});
|
|
|
|
dropZones.forEach(zone => {
|
|
zone.addEventListener("dragover", (e) => {
|
|
e.preventDefault(); // Indispensable pour autoriser le drop
|
|
zone.classList.add("drag-over");
|
|
});
|
|
|
|
zone.addEventListener("dragleave", () => {
|
|
zone.classList.remove("drag-over");
|
|
});
|
|
|
|
zone.addEventListener("drop", (e) => {
|
|
e.preventDefault();
|
|
zone.classList.remove("drag-over");
|
|
|
|
const id = e.dataTransfer.getData("text/plain");
|
|
const draggableElement = document.getElementById(id);
|
|
|
|
if (draggableElement) {
|
|
zone.appendChild(draggableElement);
|
|
// Ici se branchera l'appel API asynchrone vers ton Gitea/Serveur
|
|
const targetDay = zone.getAttribute("data-day");
|
|
console.log(`Séance déplacée avec succès sur le jour : ${targetDay}`);
|
|
}
|
|
});
|
|
});
|
|
});
|