// Utilisation des fonctions de cookies globales définies dans app.js // Fonction d'initialisation du template function initTemplate() { // Appliquer l'état du menu depuis le cookie applyMenuState(); // Initialiser le bouton de minimisation du menu initMinimizeButton(); } // Fonction pour appliquer l'état du menu depuis le cookie function applyMenuState() { var body = document.querySelector('body'); var menuState = getCookie('sidebar_state'); // Si le cookie existe, appliquer l'état enregistré if (menuState === 'collapsed') { if (!body.classList.contains('sidebar-icon-only')) { body.classList.add('sidebar-icon-only'); } } else if (menuState === 'expanded') { if (body.classList.contains('sidebar-icon-only')) { body.classList.remove('sidebar-icon-only'); } } } // Fonction pour initialiser le bouton de minimisation du menu function initMinimizeButton() { // Supprimer l'ancien gestionnaire d'événements s'il existe document.querySelectorAll('[data-toggle="minimize"]').forEach(function(button) { // Créer une copie du bouton pour supprimer tous les écouteurs d'événements var newButton = button.cloneNode(true); button.parentNode.replaceChild(newButton, button); // Ajouter le nouvel écouteur d'événements newButton.addEventListener("click", function() { var body = document.querySelector('body'); if ((body.classList.contains('sidebar-toggle-display')) || (body.classList.contains('sidebar-absolute'))) { body.classList.toggle('sidebar-hidden'); // Enregistrer l'état dans un cookie var newState = body.classList.contains('sidebar-hidden') ? 'collapsed' : 'expanded'; setCookie('sidebar_state', newState, 365); // Valable 1 an } else { body.classList.toggle('sidebar-icon-only'); // Enregistrer l'état dans un cookie var newState = body.classList.contains('sidebar-icon-only') ? 'collapsed' : 'expanded'; setCookie('sidebar_state', newState, 365); // Valable 1 an } }); }); } // Exécuter l'initialisation au chargement de la page document.addEventListener('DOMContentLoaded', initTemplate); // Support pour différents systèmes de navigation if (typeof Turbo !== 'undefined') { document.addEventListener('turbo:load', initTemplate); document.addEventListener('turbo:render', initTemplate); } // Support pour les applications SPA qui utilisent l'historique de navigation window.addEventListener('popstate', initTemplate);