document.addEventListener("DOMContentLoaded", () => { // --- NAV SWITCHER DES ONGLETS LATÉRAUX --- 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"); const targetSection = document.getElementById(tabId); if (targetSection) { targetSection.classList.add("active"); } }); }); // --- DRAG & DROP ENGINE INTELLIGENT --- const draggables = document.querySelectorAll(".rym-draggable-workout"); const dropZones = document.querySelectorAll(".drop-zone"); function recalculerChargeHebdo() { let totalSéances = 0; dropZones.forEach(zone => { totalSéances += zone.querySelectorAll(".rym-draggable-workout").length; }); // Calcul dynamique : 25% de charge par bloc actif, plafonné à 100% const nouvelleCharge = Math.min(totalSéances * 25, 100); // Cibler le deuxième spinner du dashboard (Charge Hebdo) const spinnerCharge = document.querySelectorAll(".rym-spinner-wrapper")[1]; if (spinnerCharge) { const cercleStroke = spinnerCharge.querySelector(".circle-stroke"); const texteValeur = spinnerCharge.querySelector(".rym-spinner-text span"); texteValeur.textContent = nouvelleCharge; cercleStroke.setAttribute("stroke-dasharray", `${nouvelleCharge}, 100`); } } draggables.forEach(draggable => { draggable.addEventListener("dragstart", (e) => { e.dataTransfer.setData("text/plain", draggable.id); setTimeout(() => { draggable.style.display = "none"; }, 0); }); draggable.addEventListener("dragend", () => { draggable.style.display = "block"; }); }); dropZones.forEach(zone => { zone.addEventListener("dragover", (e) => { e.preventDefault(); 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); recalculerChargeHebdo(); } }); }); // Calcul initial recalculerChargeHebdo(); });