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 59d70a9..171795a 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 @@ -28,70 +28,70 @@ 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/"]'); +// 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; + 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; + // 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; -// }); + 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é -// } -// } -// } + 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'); +// 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 || ''; + 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(); + // 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 targetName = normalize(rawSiteName); -// const circles = svgElement.querySelectorAll('circle.site-link'); + const circles = svgElement.querySelectorAll('circle.site-link'); -// circles.forEach(circle => { -// const contentHtml = circle.getAttribute('data-content') || ''; + 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; + // 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 || ''); + // 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é -// } -// }); -// } -// } + if (circleName === targetName) { + currentPageCircle = circle; + currentPageCircle.setAttribute('fill', 'red'); // surligne le site lié + } + }); + } +} // Fonction pour afficher le popup function showPopup(content) { diff --git a/web/themes/custom/quartiers_de_demain/dist/assets/bundle.js b/web/themes/custom/quartiers_de_demain/dist/assets/bundle.js index 47c2e7b..c33b5de 100644 --- a/web/themes/custom/quartiers_de_demain/dist/assets/bundle.js +++ b/web/themes/custom/quartiers_de_demain/dist/assets/bundle.js @@ -401,8 +401,8 @@ document.addEventListener('DOMContentLoaded', function() { }); -// ////////////////////// start calendrier home ///////////////////////////////// $(document).ready(function(){ +// ////////////////////// start calendrier home ///////////////////////////////// // Aller au 9e élément à l'initialisation $('.__timeline-content').on('init', function(event, slick){ @@ -432,7 +432,7 @@ document.addEventListener('DOMContentLoaded', function() { }); console.log('salut slick calendrier'); - }); + //////////////////////// end calendrier home ///////////////////////////////// @@ -443,7 +443,7 @@ document.addEventListener('DOMContentLoaded', function() { //////////// start slideshow images home ////////////////////////// -$(document).ready(function () { + let diapohome = $('.config_pages--type--diaporama-home .diaporama'); if (diapohome.length) { @@ -473,12 +473,12 @@ $(document).ready(function () { }); } -}); + //////////// end slideshow images home ////////////////////////// //////////// start slideshow /actualites ////////////////////////// -$(document).ready(function(){ + // Vérifier si on N'EST PAS sur la page #home if (!$("#page-node").length) { let actuview2 = $('.content-wrapper-actu .field_field_images .actu-diaporama'); @@ -780,14 +780,14 @@ $(document).ready(function () { $(this).addClass(classToAdd); // Ajoute cette classe à .view-rows-wrapper } }); -}); + ////////////////// end class à view-rows-wrapper //////////////// /////////////////// start voir plus... ressources //////////////////// -$(document).ready(function () { + // Vérifier si on est sur la page avec l'ID #ressources if ($("#ressources").length > 0) { $(".view-rows-wrapper").each(function () { @@ -870,13 +870,13 @@ $(document).ready(function () { } -}); + /////////////////// end voir plus... ressources //////////////////// /////////////////// start voir plus... actualite dans /actualites & /home //////////////////// -$(document).ready(function () { + if ($("#actualites" ).length > 0 || $("#home").length > 0) { $(".node-type-actualite").each(function () { let article = $(this); @@ -928,15 +928,12 @@ $(document).ready(function () { } }) } -}); + /////////////////// end voir plus... actualite dans /actualites & /home //////////////////// - - - /////////////// start class à view-rows-ressources //////// -$(document).ready(function () { + $(".view-rows-wrapper").each(function () { let h3Container = $(this).prev("h3").find("div[class^='type-']"); let classToAdd = h3Container.attr("class"); // Récupère la classe complète (ex: "type-Documentation") @@ -945,9 +942,34 @@ $(document).ready(function () { $(this).addClass(classToAdd); // Ajoute cette classe à .view-rows-wrapper } }); -}); ////////////////// end class à view-rows-wrapper //////////////// +//////////////start toggle partenaire ////////////////// + + $(".node-type-partenaire").each(function () { + let article = $(this); + + let body = article.find(".field_body"); + let links = article.find(".field_field_lien"); + + body.hide(); + links.hide(); + + let toggleButton = $("