MediaWiki:Common.js: Difference between revisions
From Zezenia Online Wiki
No edit summary |
Remove |
||
(23 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
/* Google Analytics */ | |||
var gtm = document.createElement("script"); | var gtm = document.createElement("script"); | ||
gtm.async = true; | gtm.async = true; | ||
gtm.src = "https://www.googletagmanager.com/gtag/js?id=G-Z2TDHQE12Q"; | gtm.src = "https://www.googletagmanager.com/gtag/js?id=G-Z2TDHQE12Q"; | ||
gtm.setAttribute("type", "text/plain"); | |||
gtm.setAttribute("data-zezenia-consent", "analytics"); | |||
document.body.appendChild(gtm); | document.body.appendChild(gtm); | ||
Line 43: | Line 13: | ||
gtag('js', new Date()); | gtag('js', new Date()); | ||
gtag('config', 'G-Z2TDHQE12Q'); | gtag('config', 'G-Z2TDHQE12Q'); | ||
/* Plausible */ | |||
var script = document.createElement('script'); | |||
script.setAttribute('data-domain', 'account.playzezenia.com'); | |||
script.setAttribute('data-zezenia-consent', 'functional'); | |||
script.setAttribute('type', 'text/plain'); | |||
script.setAttribute('src', 'https://plausible.io/js/plausible.js'); | |||
document.head.appendChild(script); | |||
/* Consent */ | |||
var css = document.createElement("link"); | |||
css.rel = "stylesheet"; | |||
css.type = "text/css"; | |||
css.href = "https://consent.playzezenia.com/consent.css"; | |||
document.head.appendChild(css); | |||
var script = document.createElement("script"); | |||
script.src = "https://consent.playzezenia.com/consent.js"; | |||
script.async = true; | |||
document.body.appendChild(script); | |||
/* Embed maps */ | /* Embed maps */ | ||
Line 55: | Line 45: | ||
if (embed.dataset.y) params += "y=" + embed.dataset.y + "&"; | if (embed.dataset.y) params += "y=" + embed.dataset.y + "&"; | ||
if (embed.dataset.z) params += "z=" + embed.dataset.z + "&"; | if (embed.dataset.z) params += "z=" + embed.dataset.z + "&"; | ||
if (embed.dataset.zoom) params += "zoom=" + embed.dataset.zoom + "&"; | if (embed.dataset.zoom) params += "zoom=" + embed.dataset.zoom + "&"; | ||
if (embed.dataset.center) params += "center=" + embed.dataset.center + "&"; | |||
if (embed.dataset.markers) params += "markers=" + encodeURIComponent(embed.dataset.markers) + "&"; | |||
if (embed.dataset.nobuiltins && embed.dataset.nobuiltins.length) params += "hidemarkers=true&"; | |||
iframe.src = "https://map.playzezenia.com?" + params; | iframe.src = "https://map.playzezenia.com?" + params; | ||
embed.appendChild(iframe); | embed.appendChild(iframe); | ||
}); | }); | ||
/* Toggle maps */ | |||
var toggleMaps = document.querySelectorAll(".zezenia-map-toggle"); | |||
toggleMaps.forEach(function(toggle) { | |||
toggle.style.display = "inline-block"; | |||
var map = toggle.querySelector(".zezenia-map-embed"); | |||
map.style.display = "none"; | |||
var link = document.createElement("a"); | |||
link.innerText = "🗺️ Open map"; | |||
link.onclick = function(e) { | |||
e.preventDefault(); | |||
if (map.style.display !== "none") { | |||
map.style.display = "none"; | |||
link.innerHTML = "🗺️ Open map"; | |||
} else { | |||
map.style.display = "block"; | |||
link.innerHTML = "🗺️ Close map"; | |||
} | |||
return false; | |||
}; | |||
link.href = "#"; | |||
toggle.insertBefore(link, map); | |||
}); | |||
/* Remember spoiler toggle */ | |||
setTimeout(function() { | |||
var toggles = document.querySelectorAll('.mw-collapsible a.mw-collapsible-text'); | |||
Array.from(toggles).forEach(function(toggle) { | |||
toggle.addEventListener('click', function() { | |||
setTimeout(function() { | |||
var expanded = toggle.parentNode.className.indexOf('expanded') >= 0; | |||
window.localStorage['zezenia-spoilers'] = expanded; | |||
}); | |||
}); | |||
}); | |||
if (window.localStorage['zezenia-spoilers'] === 'true') { | |||
Array.from(toggles).forEach(function(toggle) { | |||
if (toggle.parentNode.className.indexOf('expanded') === -1) { | |||
toggle.click(); | |||
} | |||
}); | |||
} | |||
}, 100); |
Latest revision as of 10:43, 30 September 2023
/* Any JavaScript here will be loaded for all users on every page load. */ /* Google Analytics */ var gtm = document.createElement("script"); gtm.async = true; gtm.src = "https://www.googletagmanager.com/gtag/js?id=G-Z2TDHQE12Q"; gtm.setAttribute("type", "text/plain"); gtm.setAttribute("data-zezenia-consent", "analytics"); document.body.appendChild(gtm); window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-Z2TDHQE12Q'); /* Plausible */ var script = document.createElement('script'); script.setAttribute('data-domain', 'account.playzezenia.com'); script.setAttribute('data-zezenia-consent', 'functional'); script.setAttribute('type', 'text/plain'); script.setAttribute('src', 'https://plausible.io/js/plausible.js'); document.head.appendChild(script); /* Consent */ var css = document.createElement("link"); css.rel = "stylesheet"; css.type = "text/css"; css.href = "https://consent.playzezenia.com/consent.css"; document.head.appendChild(css); var script = document.createElement("script"); script.src = "https://consent.playzezenia.com/consent.js"; script.async = true; document.body.appendChild(script); /* Embed maps */ var embeds = document.querySelectorAll(".zezenia-map-embed"); embeds.forEach(function(embed) { var iframe = document.createElement("iframe"); iframe.width = embed.dataset.width || 800; iframe.height = embed.dataset.height || 600; var params = "embed=true&"; if (embed.dataset.x) params += "x=" + embed.dataset.x + "&"; if (embed.dataset.y) params += "y=" + embed.dataset.y + "&"; if (embed.dataset.z) params += "z=" + embed.dataset.z + "&"; if (embed.dataset.zoom) params += "zoom=" + embed.dataset.zoom + "&"; if (embed.dataset.center) params += "center=" + embed.dataset.center + "&"; if (embed.dataset.markers) params += "markers=" + encodeURIComponent(embed.dataset.markers) + "&"; if (embed.dataset.nobuiltins && embed.dataset.nobuiltins.length) params += "hidemarkers=true&"; iframe.src = "https://map.playzezenia.com?" + params; embed.appendChild(iframe); }); /* Toggle maps */ var toggleMaps = document.querySelectorAll(".zezenia-map-toggle"); toggleMaps.forEach(function(toggle) { toggle.style.display = "inline-block"; var map = toggle.querySelector(".zezenia-map-embed"); map.style.display = "none"; var link = document.createElement("a"); link.innerText = "🗺️ Open map"; link.onclick = function(e) { e.preventDefault(); if (map.style.display !== "none") { map.style.display = "none"; link.innerHTML = "🗺️ Open map"; } else { map.style.display = "block"; link.innerHTML = "🗺️ Close map"; } return false; }; link.href = "#"; toggle.insertBefore(link, map); }); /* Remember spoiler toggle */ setTimeout(function() { var toggles = document.querySelectorAll('.mw-collapsible a.mw-collapsible-text'); Array.from(toggles).forEach(function(toggle) { toggle.addEventListener('click', function() { setTimeout(function() { var expanded = toggle.parentNode.className.indexOf('expanded') >= 0; window.localStorage['zezenia-spoilers'] = expanded; }); }); }); if (window.localStorage['zezenia-spoilers'] === 'true') { Array.from(toggles).forEach(function(toggle) { if (toggle.parentNode.className.indexOf('expanded') === -1) { toggle.click(); } }); } }, 100);