remove js carte point rouge car bug
This commit is contained in:
@@ -28,70 +28,70 @@ if (isNodeTypeSitePage) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Identifier le cercle du SITE lié quand on est sur une page node-type-projet
|
// // Identifier le cercle du SITE lié quand on est sur une page node-type-projet
|
||||||
if (isNodeTypeProjetPage && svgElement) {
|
// if (isNodeTypeProjetPage && svgElement) {
|
||||||
// On récupère le lien vers le site lié dans le bloc "Site lié"
|
// // 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/"]');
|
// const linkedSiteLink = document.querySelector('.field_field_site_projet article.node-type-site a[href*="/sites/"]');
|
||||||
|
|
||||||
if (linkedSiteLink) {
|
// if (linkedSiteLink) {
|
||||||
// On normalise le chemin (sans domaine) de l'URL du site
|
// // On normalise le chemin (sans domaine) de l'URL du site
|
||||||
const sitePath = new URL(linkedSiteLink.getAttribute('href'), window.location.origin).pathname;
|
// 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
|
// // 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 correspondingCircle = Array.from(svgElement.querySelectorAll('circle.site-link')).find(circle => {
|
||||||
const circleUrl = circle.getAttribute('data-url');
|
// const circleUrl = circle.getAttribute('data-url');
|
||||||
if (!circleUrl) return false;
|
// if (!circleUrl) return false;
|
||||||
|
|
||||||
const circlePath = new URL(circleUrl, window.location.origin).pathname;
|
// const circlePath = new URL(circleUrl, window.location.origin).pathname;
|
||||||
return circlePath === sitePath;
|
// return circlePath === sitePath;
|
||||||
});
|
// });
|
||||||
|
|
||||||
if (correspondingCircle) {
|
// if (correspondingCircle) {
|
||||||
currentPageCircle = correspondingCircle;
|
// currentPageCircle = correspondingCircle;
|
||||||
currentPageCircle.setAttribute('fill', 'red'); // Met en rouge le cercle du site lié
|
// 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
|
// // Identifier le cercle du SITE lié quand on est sur une page node-type-ressource
|
||||||
if (isNodeTypeRessourcePage && svgElement) {
|
// if (isNodeTypeRessourcePage && svgElement) {
|
||||||
// On récupère le(s) nom(s) de site dans le champ .field_field_site
|
// // 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)
|
// // Ici on part sur le premier (simple à gérer, extensible ensuite si besoin)
|
||||||
const siteNameNode = document.querySelector('.field_field_site > div:not(.field) div');
|
// const siteNameNode = document.querySelector('.field_field_site > div:not(.field) div');
|
||||||
|
|
||||||
if (siteNameNode) {
|
// if (siteNameNode) {
|
||||||
const rawSiteName = siteNameNode.textContent || '';
|
// const rawSiteName = siteNameNode.textContent || '';
|
||||||
|
|
||||||
// Normalisation basique pour éviter les soucis d'espaces / accents insécables
|
// // Normalisation basique pour éviter les soucis d'espaces / accents insécables
|
||||||
const normalize = (str) =>
|
// const normalize = (str) =>
|
||||||
str.replace(/\u00a0/g, ' ') // remplace les espaces insécables
|
// str.replace(/\u00a0/g, ' ') // remplace les espaces insécables
|
||||||
.replace(/\s+/g, ' ') // compresse les espaces multiples
|
// .replace(/\s+/g, ' ') // compresse les espaces multiples
|
||||||
.trim()
|
// .trim()
|
||||||
.toLowerCase();
|
// .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 => {
|
// circles.forEach(circle => {
|
||||||
const contentHtml = circle.getAttribute('data-content') || '';
|
// const contentHtml = circle.getAttribute('data-content') || '';
|
||||||
|
|
||||||
// On crée un élément temporaire pour parser le HTML de data-content
|
// // On crée un élément temporaire pour parser le HTML de data-content
|
||||||
const tmp = document.createElement('div');
|
// const tmp = document.createElement('div');
|
||||||
tmp.innerHTML = contentHtml;
|
// tmp.innerHTML = contentHtml;
|
||||||
|
|
||||||
// En général, le nom est dans le <strong>
|
// // En général, le nom est dans le <strong>
|
||||||
const strong = tmp.querySelector('strong');
|
// const strong = tmp.querySelector('strong');
|
||||||
const circleNameRaw = strong ? strong.textContent : tmp.textContent;
|
// const circleNameRaw = strong ? strong.textContent : tmp.textContent;
|
||||||
const circleName = normalize(circleNameRaw || '');
|
// const circleName = normalize(circleNameRaw || '');
|
||||||
|
|
||||||
if (circleName === targetName) {
|
// if (circleName === targetName) {
|
||||||
currentPageCircle = circle;
|
// currentPageCircle = circle;
|
||||||
currentPageCircle.setAttribute('fill', 'red'); // surligne le site lié
|
// currentPageCircle.setAttribute('fill', 'red'); // surligne le site lié
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
// Fonction pour afficher le popup
|
// Fonction pour afficher le popup
|
||||||
function showPopup(content) {
|
function showPopup(content) {
|
||||||
|
|||||||
Reference in New Issue
Block a user