diff --git a/Bootstrap_new/js/ux-manager.js b/Bootstrap_new/js/ux-manager.js index 1d80087..46a3289 100644 --- a/Bootstrap_new/js/ux-manager.js +++ b/Bootstrap_new/js/ux-manager.js @@ -36,7 +36,7 @@ class UXManager { * Appelée automatiquement par le constructeur */ init() { - console.log('[UX Manager] Initialisation du système d\'expérience utilisateur...'); + //console.log('[UX Manager] Initialisation du système d\'expérience utilisateur...'); // Initialisation séquentielle des sous-managers this.navigation.init(); @@ -52,7 +52,7 @@ class UXManager { // Initialisation du Service Worker this.initServiceWorker(); - console.log('[UX Manager] Initialisation terminée avec succès'); + //console.log('[UX Manager] Initialisation terminée avec succès'); } /** @@ -149,9 +149,9 @@ class UXManager { initServiceWorker() { if ('serviceWorker' in navigator) { navigator.serviceWorker.ready.then(registration => { - console.log('[UX Manager] Service Worker actif:', registration.scope); + //console.log('[UX Manager] Service Worker actif:', registration.scope); }).catch(error => { - console.warn('[UX Manager] Service Worker non disponible:', error); + //console.warn('[UX Manager] Service Worker non disponible:', error); }); } } @@ -182,7 +182,7 @@ class NavigationManager { init() { if (this.isInitialized) return; - console.log('[Navigation] Initialisation du système de menus...'); + // console.log('[Navigation] Initialisation du système de menus...'); // Appliquer le correctif d'urgence pour les menus multiples ouverts this.applyEmergencyFix(); @@ -198,7 +198,7 @@ class NavigationManager { }, 300); this.isInitialized = true; - console.log('[Navigation] Système de menus initialisé'); + //console.log('[Navigation] Système de menus initialisé'); } /** @@ -211,7 +211,7 @@ class NavigationManager { if (activeParentId !== null && activeParentId !== '') { this.activeMenuId = `submenu${activeParentId}`; - console.log('[Navigation] Correctif: Menu actif détecté:', this.activeMenuId); + //console.log('[Navigation] Correctif: Menu actif détecté:', this.activeMenuId); // Forcer la fermeture de tous les autres menus this.forceSingleMenu(); @@ -225,7 +225,7 @@ class NavigationManager { forceSingleMenu() { if (!this.activeMenuId) return; - console.log('[Navigation] Forçage: Un seul menu ouvert ->', this.activeMenuId); + //console.log('[Navigation] Forçage: Un seul menu ouvert ->', this.activeMenuId); // Étape 1: Fermer TOUS les menus document.querySelectorAll('.nav-submenu').forEach(menu => { @@ -249,11 +249,11 @@ class NavigationManager { const activeParentId = window.appConfig?.activeParentId; const activeLink = window.appConfig?.activeLink; - console.log('[Navigation] Configuration:', { activeParentId, activeLink }); + //console.log('[Navigation] Configuration:', { activeParentId, activeLink }); // CORRECTION : Si "Accueil" mais activeParentId != 0, corriger if (activeLink === 'Accueil' && activeParentId !== '0') { - console.warn('[Navigation] Correction: Accueil devrait être menu 0, pas', activeParentId); + //console.warn('[Navigation] Correction: Accueil devrait être menu 0, pas', activeParentId); this.activeMenuId = 'submenu0'; // Mettre à jour la config @@ -268,7 +268,7 @@ class NavigationManager { this.activeMenuId = null; } - console.log('[Navigation] Menu actif final:', this.activeMenuId); + //console.log('[Navigation] Menu actif final:', this.activeMenuId); // Appliquer if (this.activeMenuId) { @@ -291,7 +291,7 @@ class NavigationManager { e.stopPropagation(); const targetId = link.getAttribute('href').substring(1); // Enlever le # - console.log('[Navigation] Clic détecté sur menu:', targetId); + //console.log('[Navigation] Clic détecté sur menu:', targetId); // Logique de basculement intelligent if (this.currentOpenMenu === targetId) { @@ -341,11 +341,11 @@ class NavigationManager { if (menu && link) { // Vérifier si le menu est déjà ouvert if (menu.classList.contains('show')) { - console.log('[Navigation] Menu déjà ouvert:', menuId); + //console.log('[Navigation] Menu déjà ouvert:', menuId); return; } - console.log('[Navigation] Ouverture du menu:', menuId); + //console.log('[Navigation] Ouverture du menu:', menuId); // 1. Fermer tous les autres menus document.querySelectorAll('.nav-submenu.show').forEach(otherMenu => { @@ -389,11 +389,11 @@ class NavigationManager { if (menu && link) { // Ne pas fermer le menu actif s'il correspond à la page courante (sauf si forcé) if (!force && menuId === this.activeMenuId) { - console.log('[Navigation] Menu actif, fermeture bloquée:', menuId); + //console.log('[Navigation] Menu actif, fermeture bloquée:', menuId); return; } - console.log('[Navigation] Fermeture du menu:', menuId); + //console.log('[Navigation] Fermeture du menu:', menuId); // Appliquer les changements visuels menu.classList.remove('show'); @@ -411,7 +411,7 @@ class NavigationManager { * @public - Méthode accessible globalement */ closeAllMenus() { - console.log('[Navigation] Fermeture de tous les menus (sauf actif)'); + //console.log('[Navigation] Fermeture de tous les menus (sauf actif)'); document.querySelectorAll('.nav-submenu.show').forEach(menu => { if (menu.id !== this.activeMenuId) { @@ -477,13 +477,13 @@ class NavigationManager { * @private - Méthode de validation */ validateMenuConsistency() { - console.log('[Navigation] Vérification de cohérence...'); + //console.log('[Navigation] Vérification de cohérence...'); // 1. Vérifier que le menu actif est ouvert if (this.activeMenuId) { const activeMenu = document.getElementById(this.activeMenuId); if (activeMenu && !activeMenu.classList.contains('show')) { - console.warn('[Navigation] Menu actif non ouvert, correction...'); + //console.warn('[Navigation] Menu actif non ouvert, correction...'); this.openMenu(this.activeMenuId); } } @@ -491,7 +491,7 @@ class NavigationManager { // 2. Vérifier qu'un seul menu est ouvert const openMenus = document.querySelectorAll('.nav-submenu.show'); if (openMenus.length > 1) { - console.warn(`[Navigation] ${openMenus.length} menus ouverts, correction...`); + //console.warn(`[Navigation] ${openMenus.length} menus ouverts, correction...`); this.forceSingleMenu(); } @@ -512,7 +512,7 @@ class NavigationManager { if (openMenu) { const hasActiveLink = openMenu.querySelector(`a[href*="${activeLink}"]`); if (!hasActiveLink) { - console.warn(`[Navigation] Page "${activeLink}" non trouvée dans le menu ouvert ${openMenu.id}`); + //console.warn(`[Navigation] Page "${activeLink}" non trouvée dans le menu ouvert ${openMenu.id}`); // Essayer de trouver le bon menu this.autoDetectCorrectMenu(); @@ -528,14 +528,14 @@ class NavigationManager { const activeLink = window.appConfig?.activeLink; if (!activeLink) return; - console.log(`[Navigation] Auto-détection du menu pour "${activeLink}"...`); + //console.log(`[Navigation] Auto-détection du menu pour "${activeLink}"...`); // Chercher dans tous les menus document.querySelectorAll('.nav-submenu').forEach(menu => { const link = menu.querySelector(`a[href*="${activeLink}"]`); if (link) { const correctMenuId = menu.id; - console.log(`[Navigation] Trouvé dans ${correctMenuId}`); + //console.log(`[Navigation] Trouvé dans ${correctMenuId}`); // Mettre à jour this.activeMenuId = correctMenuId; @@ -591,7 +591,7 @@ class ContextPanelManager { init() { if (this.isInitialized || !this.panel) return; - console.log('[Context Panel] Initialisation...'); + //console.log('[Context Panel] Initialisation...'); this.setupProximityDetection(); this.setupKeyboardControls(); @@ -671,7 +671,7 @@ class ContextPanelManager { if (closeBtn) closeBtn.focus(); }, 300); - console.log('[Context Panel] Ouvert'); + //console.log('[Context Panel] Ouvert'); window.appUX?.accessibility.announce('Panneau contextuel ouvert'); } @@ -688,7 +688,7 @@ class ContextPanelManager { // Retourner le focus au bouton toggle this.toggleButton.focus(); - console.log('[Context Panel] Fermé'); + //console.log('[Context Panel] Fermé'); window.appUX?.accessibility.announce('Panneau contextuel fermé'); } } @@ -715,7 +715,7 @@ class NotificationManager { * @public - Méthode appelée par UXManager */ init() { - console.log('[Notifications] Initialisation...'); + //console.log('[Notifications] Initialisation...'); this.loadNotifications(); this.setupPolling(); @@ -730,7 +730,7 @@ class NotificationManager { const mockCount = 3; // Exemple : 3 notifications non lues this.updateCount(mockCount); - console.log('[Notifications] Chargement simulé:', mockCount, 'notification(s)'); + //console.log('[Notifications] Chargement simulé:', mockCount, 'notification(s)'); } /** @@ -787,7 +787,7 @@ class NotificationManager { showMessagesModal() { const modalElement = document.getElementById('messagesModal'); if (!modalElement) { - console.error('[Notifications] Modale des messages non trouvée'); + //console.error('[Notifications] Modale des messages non trouvée'); return; } @@ -797,7 +797,7 @@ class NotificationManager { // Charger les messages this.loadMessages(); - console.log('[Notifications] Affichage de la modale des messages'); + //console.log('[Notifications] Affichage de la modale des messages'); } /** @@ -859,14 +859,14 @@ class AccessibilityManager { * @public - Méthode appelée par UXManager */ init() { - console.log('[Accessibility] Initialisation des fonctionnalités d\'accessibilités...'); + //console.log('[Accessibility] Initialisation des fonctionnalités d\'accessibilités...'); this.setupFocusManagement(); this.setupAriaLiveRegions(); this.detectReducedMotion(); this.setupSkipLinks(); - console.log('[Accessibility] Fonctionnalités d\'accessibilité activées'); + //console.log('[Accessibility] Fonctionnalités d\'accessibilité activées'); } /** @@ -934,7 +934,7 @@ class AccessibilityManager { this.liveRegion.setAttribute('role', 'status'); document.body.appendChild(this.liveRegion); - console.log('[Accessibility] Région ARIA live créée'); + //console.log('[Accessibility] Région ARIA live créée'); } /** @@ -951,7 +951,7 @@ class AccessibilityManager { // Ajouter le nouveau message après un délai setTimeout(() => { this.liveRegion.textContent = message; - console.log('[Accessibility] Annonce:', message); + //console.log('[Accessibility] Annonce:', message); }, 100); } @@ -965,7 +965,7 @@ class AccessibilityManager { if (this.reducedMotion) { document.documentElement.classList.add('reduced-motion'); - console.log('[Accessibility] Réduction des mouvements activée'); + //console.log('[Accessibility] Réduction des mouvements activée'); } // Écouter les changements de préférence @@ -976,7 +976,7 @@ class AccessibilityManager { } else { document.documentElement.classList.remove('reduced-motion'); } - console.log('[Accessibility] Préférence de mouvement mise à jour:', this.reducedMotion); + //console.log('[Accessibility] Préférence de mouvement mise à jour:', this.reducedMotion); }); } @@ -1002,7 +1002,7 @@ class AccessibilityManager { // Insérer au début du body document.body.insertBefore(skipLinks, document.body.firstChild); - console.log('[Accessibility] Liens d\'évitement créés'); + //console.log('[Accessibility] Liens d\'évitement créés'); } } @@ -1027,14 +1027,14 @@ class PerformanceManager { * @public - Méthode appelée par UXManager */ init() { - console.log('[Performance] Initialisation du monitoring...'); + //console.log('[Performance] Initialisation du monitoring...'); this.monitorPerformance(); this.setupLazyLoading(); this.setupIntersectionObserver(); this.setupIdleCallback(); - console.log('[Performance] Monitoring activé'); + //console.log('[Performance] Monitoring activé'); } /** @@ -1049,16 +1049,16 @@ class PerformanceManager { switch (entry.entryType) { case 'largest-contentful-paint': this.metrics.lcp = entry.startTime; - console.log('[Performance] LCP:', entry.startTime.toFixed(2), 'ms'); + //console.log('[Performance] LCP:', entry.startTime.toFixed(2), 'ms'); break; case 'first-input': this.metrics.fid = entry.processingStart - entry.startTime; - console.log('[Performance] FID:', this.metrics.fid.toFixed(2), 'ms'); + //console.log('[Performance] FID:', this.metrics.fid.toFixed(2), 'ms'); break; case 'layout-shift': if (!entry.hadRecentInput) { this.metrics.cls = (this.metrics.cls || 0) + entry.value; - console.log('[Performance] CLS cumulé:', this.metrics.cls.toFixed(4)); + //console.log('[Performance] CLS cumulé:', this.metrics.cls.toFixed(4)); } break; } @@ -1083,11 +1083,11 @@ class PerformanceManager { document.querySelectorAll('img[loading="lazy"]').forEach(img => { img.addEventListener('load', () => { img.classList.add('loaded'); - console.log('[Performance] Image chargée:', img.src); + //console.log('[Performance] Image chargée:', img.src); }); img.addEventListener('error', () => { - console.warn('[Performance] Erreur de chargement image:', img.src); + //console.warn('[Performance] Erreur de chargement image:', img.src); }); }); } else { @@ -1212,7 +1212,7 @@ class LanguageManager { this.detectCurrentLanguage(); this.updateLanguageTexts(); - console.log('[Language] Gestionnaire de langue initialisé:', this.currentLang); + //console.log('[Language] Gestionnaire de langue initialisé:', this.currentLang); } /** @@ -1258,7 +1258,7 @@ class LanguageManager { // Rediriger vers la page de connexion avec le nouveau paramètre de langue const redirectUrl = window.appConfig?.racineWeb + 'Connexion/index?langue=' + newLang; - console.log('[Language] Changement de langue vers:', newLang); + //console.log('[Language] Changement de langue vers:', newLang); window.location.href = redirectUrl; } }); @@ -1298,11 +1298,11 @@ class LanguageManager { * Point d'entrée principal de l'application */ document.addEventListener('DOMContentLoaded', () => { - console.log('[App] DOM chargé, initialisation de l\'application...'); + //console.log('[App] DOM chargé, initialisation de l\'application...'); // Vérifier que la configuration est disponible if (!window.appConfig) { - console.warn('[App] Configuration non trouvée, création par défaut...'); + //console.warn('[App] Configuration non trouvée, création par défaut...'); window.appConfig = { activeParentId: '', activeChildId: '', @@ -1320,7 +1320,7 @@ document.addEventListener('DOMContentLoaded', () => { // Marquer le chargement comme terminé setTimeout(() => { document.body.classList.add('loaded'); - console.log('[App] Portail RH Inter Santé initialisé avec succès'); + //console.log('[App] Portail RH Inter Santé initialisé avec succès'); // Émettre un événement personnalisé document.dispatchEvent(new CustomEvent('app:initialized')); @@ -1414,11 +1414,11 @@ window.uxManager = { */ testSystem: () => { if (window.appConfig?.debugMode) { - console.group('[UX Manager] Test du système'); + /*console.group('[UX Manager] Test du système'); console.log('App UX:', window.appUX); console.log('Navigation:', window.appUX?.navigation); console.log('Config:', window.appConfig); - console.groupEnd(); + console.groupEnd();*/ } } }; @@ -1440,4 +1440,4 @@ export { }; */ -console.log('[UX Manager] Module chargé et prêt à l\'emploi'); \ No newline at end of file +//console.log('[UX Manager] Module chargé et prêt à l\'emploi'); \ No newline at end of file diff --git a/Js/sw-register.js b/Js/sw-register.js index 687b1d2..ea46d9f 100644 --- a/Js/sw-register.js +++ b/Js/sw-register.js @@ -65,15 +65,15 @@ // ============================================ function handleRegistrationError(error) { - console.error('Erreur d\'enregistrement du Service Worker:', error); + //console.error('Erreur d\'enregistrement du Service Worker:', error); // Suggestions de dépannage basées sur l'erreur if (error.name === 'SecurityError') { - console.warn('⚠️ Vérifiez que vous êtes en HTTPS'); + //console.warn('⚠️ Vérifiez que vous êtes en HTTPS'); } else if (error.name === 'TypeError') { - console.warn('⚠️ Vérifiez le chemin du Service Worker'); + //console.warn('⚠️ Vérifiez le chemin du Service Worker'); } else if (error.message.includes('MIME type')) { - console.warn('⚠️ Vérifiez l\'en-tête Content-Type du Service Worker'); + //console.warn('⚠️ Vérifiez l\'en-tête Content-Type du Service Worker'); } } @@ -382,7 +382,7 @@ function log(message, ...args) { if (DEBUG) { - console.log('[SW Register]', message, ...args); + //console.log('[SW Register]', message, ...args); } } @@ -417,7 +417,7 @@ window.addEventListener('error', function(event) { if (event.message && event.message.includes('ServiceWorker')) { - console.error('Erreur Service Worker:', event.error); + //console.error('Erreur Service Worker:', event.error); } }); diff --git a/Vue/gabarit.php b/Vue/gabarit.php index 0ac1965..cf09c23 100755 --- a/Vue/gabarit.php +++ b/Vue/gabarit.php @@ -608,10 +608,10 @@ $activeChildId = $menuData['child']; - + - +