diff --git a/web/modules/custom/q2d_mod/assets/js/carte-interactive-qdd.js b/web/modules/custom/q2d_mod/assets/js/carte-interactive-qdd.js index 171795a..3c27139 100644 --- a/web/modules/custom/q2d_mod/assets/js/carte-interactive-qdd.js +++ b/web/modules/custom/q2d_mod/assets/js/carte-interactive-qdd.js @@ -9,8 +9,6 @@ const isHomePage = document.querySelector('main#home') !== null; const isLessitesPage = document.querySelector('div#lessites') !== null; const isNodeTypeSitePage = document.body.classList.contains('node-type-site'); const isCandidaturePage = document.querySelector('main#pour_candidater') !== null; -const isNodeTypeProjetPage = document.body.classList.contains('node-type-projet'); -const isNodeTypeRessourcePage = document.body.classList.contains('node-type-ressource'); // Identifier le cercle de la page courante pour node-type-site let currentPageCircle = null; @@ -28,70 +26,6 @@ if (isNodeTypeSitePage) { } } -// Identifier le cercle du SITE lié quand on est sur une page node-type-projet -if (isNodeTypeProjetPage && svgElement) { - // On récupère le lien vers le site lié dans le bloc "Site lié" - const linkedSiteLink = document.querySelector('.field_field_site_projet article.node-type-site a[href*="/sites/"]'); - - if (linkedSiteLink) { - // On normalise le chemin (sans domaine) de l'URL du site - const sitePath = new URL(linkedSiteLink.getAttribute('href'), window.location.origin).pathname; - - // On cherche le cercle dont le data-url pointe vers le même site - const correspondingCircle = Array.from(svgElement.querySelectorAll('circle.site-link')).find(circle => { - const circleUrl = circle.getAttribute('data-url'); - if (!circleUrl) return false; - - const circlePath = new URL(circleUrl, window.location.origin).pathname; - return circlePath === sitePath; - }); - - if (correspondingCircle) { - currentPageCircle = correspondingCircle; - currentPageCircle.setAttribute('fill', 'red'); // Met en rouge le cercle du site lié - } - } -} - -// Identifier le cercle du SITE lié quand on est sur une page node-type-ressource -if (isNodeTypeRessourcePage && svgElement) { - // On récupère le(s) nom(s) de site dans le champ .field_field_site - // Ici on part sur le premier (simple à gérer, extensible ensuite si besoin) - const siteNameNode = document.querySelector('.field_field_site > div:not(.field) div'); - - if (siteNameNode) { - const rawSiteName = siteNameNode.textContent || ''; - - // Normalisation basique pour éviter les soucis d'espaces / accents insécables - const normalize = (str) => - str.replace(/\u00a0/g, ' ') // remplace les espaces insécables - .replace(/\s+/g, ' ') // compresse les espaces multiples - .trim() - .toLowerCase(); - - const targetName = normalize(rawSiteName); - - const circles = svgElement.querySelectorAll('circle.site-link'); - - circles.forEach(circle => { - const contentHtml = circle.getAttribute('data-content') || ''; - - // On crée un élément temporaire pour parser le HTML de data-content - const tmp = document.createElement('div'); - tmp.innerHTML = contentHtml; - - // En général, le nom est dans le - const strong = tmp.querySelector('strong'); - const circleNameRaw = strong ? strong.textContent : tmp.textContent; - const circleName = normalize(circleNameRaw || ''); - - if (circleName === targetName) { - currentPageCircle = circle; - currentPageCircle.setAttribute('fill', 'red'); // surligne le site lié - } - }); - } -} // Fonction pour afficher le popup function showPopup(content) {