From d56b92474d1afeea58547cace85d966812c1b991 Mon Sep 17 00:00:00 2001 From: syoul Date: Tue, 2 Dec 2025 18:41:52 +0100 Subject: [PATCH] =?UTF-8?q?Correction=20:=20Interception=20des=20clics=20s?= =?UTF-8?q?ur=20le=20lien=20strat=C3=A9gie=20pour=20=C3=A9viter=20le=20404?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Le script intercepte maintenant tous les clics sur les liens vers /business/strategie - La page est créée dynamiquement sans navigation (pas de 404) - Gestion du bouton retour du navigateur - Le lien dans le footer utilise maintenant un hash pour éviter la navigation --- custom.js | 70 ++++++++++++++++++++++++++--- radar-business/config-business.json | 2 +- 2 files changed, 66 insertions(+), 6 deletions(-) diff --git a/custom.js b/custom.js index 7bd424f..024417e 100644 --- a/custom.js +++ b/custom.js @@ -2,20 +2,41 @@ (function() { function initStrategyLinks() { addStrategyLinkToFooter(); + interceptStrategyLinks(); handleStrategyRoute(); } function handleStrategyRoute() { - if (window.location.pathname === '/business/strategie' || window.location.pathname === '/business/strategie.html') { + // Vérifier si on est sur la route stratégie au chargement initial + if (window.location.pathname === '/business/strategie' || window.location.pathname === '/business/strategie.html' || window.location.hash === '#strategie') { createStrategyPage(); } } + + // Intercepter tous les clics sur les liens vers la stratégie + function interceptStrategyLinks() { + document.addEventListener('click', function(e) { + const link = e.target.closest('a'); + if (link && (link.href.includes('/business/strategie') || link.getAttribute('href') === '/business/strategie' || link.id === 'strategie-link')) { + e.preventDefault(); + e.stopPropagation(); + createStrategyPage(); + return false; + } + }, true); + } function createStrategyPage() { + // Sauvegarder le contenu original + if (!window.originalBodyContent) { + window.originalBodyContent = document.body.innerHTML; + } + + // Créer la page stratégie document.body.innerHTML = ` -
+
- ← Retour au Radar + ← Retour au Radar

Stratégie d'Évolution Technique - Laplank

Date de mise à jour : 02/12/2025

La stratégie complète est disponible dans le dépôt Git :

@@ -23,25 +44,65 @@
`; + + // Ajouter le gestionnaire de retour + const backLink = document.getElementById('back-to-radar'); + if (backLink) { + backLink.addEventListener('click', function(e) { + e.preventDefault(); + if (window.originalBodyContent) { + document.body.innerHTML = window.originalBodyContent; + // Réinitialiser les liens après restauration + setTimeout(initStrategyLinks, 100); + } else { + window.location.href = '/business/'; + } + }); + } + + // Mettre à jour l'URL sans recharger la page + window.history.pushState({page: 'strategie'}, 'Stratégie', '/business/strategie'); } function addStrategyLinkToFooter() { const footer = document.querySelector('footer') || document.querySelector('.footer') || document.querySelector('[class*="footer"]'); if (footer) { + // Vérifier si le lien n'existe pas déjà + if (footer.querySelector('#strategie-link') || footer.querySelector('a[href*="strategie"]')) { + return; + } + const strategyLink = document.createElement('a'); - strategyLink.href = '/business/strategie'; + strategyLink.id = 'strategie-link'; + strategyLink.href = '#strategie'; strategyLink.textContent = '📋 Voir la Stratégie'; strategyLink.style.marginLeft = '10px'; strategyLink.style.color = '#2ecc71'; strategyLink.style.textDecoration = 'none'; strategyLink.style.fontWeight = 'bold'; strategyLink.style.display = 'inline-block'; + strategyLink.style.cursor = 'pointer'; + + // Intercepter le clic + strategyLink.addEventListener('click', function(e) { + e.preventDefault(); + createStrategyPage(); + }); + footer.appendChild(strategyLink); } else { setTimeout(addStrategyLinkToFooter, 1000); } } + + // Gérer le bouton retour du navigateur + window.addEventListener('popstate', function(event) { + if (window.originalBodyContent && !event.state) { + document.body.innerHTML = window.originalBodyContent; + setTimeout(initStrategyLinks, 100); + } + }); if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initStrategyLinks); @@ -49,4 +110,3 @@ initStrategyLinks(); } })(); - diff --git a/radar-business/config-business.json b/radar-business/config-business.json index 6085134..0ef280a 100644 --- a/radar-business/config-business.json +++ b/radar-business/config-business.json @@ -111,7 +111,7 @@ "quadrantOverview": "Vue d'ensemble des quadrants", "zoomIn": "Zoomer", "filterByTag": "Filtrer par tag", - "footer": "Radar stratégique pour analyser les technologies de l'écosystème Laplank et définir une stratégie d'évolution technique alignée avec les objectifs business. 📋 Voir la Stratégie", + "footer": "Radar stratégique pour analyser les technologies de l'écosystème Laplank et définir une stratégie d'évolution technique alignée avec les objectifs business.", "notUpdated": "Cet élément n'a pas été mis à jour dans les trois dernières versions du Radar.", "notFound": "404 - Page non trouvée", "pageAbout": "Comment utiliser le Radar Business ?",