MediaWiki:Common.js: Difference between revisions
No edit summary Tag: Manual revert |
No edit summary |
||
(6 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. */ | ||
function initMap() { | function initMap() { | ||
var element = document.getElementById('map'); | var element = document.getElementById('map'); | ||
var | var dataSrc = element.getAttribute('data-src'); | ||
if (dataSrc) { | |||
var coordinates = dataSrc.split(/[;,]/).map(function(coord) { | |||
return parseFloat(coord.trim()); | |||
}); | |||
var mapOptions = { | |||
center: { lat: coordinates[0], lng: coordinates[1] }, | |||
zoom: 4 | |||
}; | |||
}); | var map = new google.maps.Map(element, mapOptions); | ||
var marker = new google.maps.Marker({ | |||
position: { lat: coordinates[0], lng: coordinates[1] }, | |||
map: map, | |||
title: 'Marker Title' | |||
}); | |||
} else { | |||
// Add the 'no-data' class if data-src doesn't exist | |||
element.classList.add('no-data'); | |||
} | |||
} | } | ||
var script = document.createElement('script'); | var script = document.createElement('script'); | ||
script.src = 'https://maps.googleapis.com/maps/api/js?key=AIzaSyBIrgq5dZQ8haJIfKHbGco90OpDwYLiXwA&callback=initMap'; | script.src = 'https://maps.googleapis.com/maps/api/js?key=AIzaSyBIrgq5dZQ8haJIfKHbGco90OpDwYLiXwA&callback=initMap'; | ||
Line 27: | Line 33: | ||
script.defer = true; | script.defer = true; | ||
document.head.appendChild(script); | document.head.appendChild(script); | ||
if (document.body.classList.contains('page-Main_Page')) { | |||
if (document.cookie.indexOf('popupClosed=true') === -1) { | |||
var popup = document.createElement('div'); | |||
popup.className = 'popup'; | |||
var popupContent = document.createElement('span'); | |||
popup.innerHTML = '<span><h>Content Note</h><p>As a database of 19th-century material, some of the texts in this Wiki may contain racist, offensive, and discriminatory language and imagery.</p> <a class="button">okay</a></span>'; | |||
document.body.insertBefore(popup, document.body.firstChild); | |||
popup.style.display = 'block'; | |||
popup.addEventListener('click', function () { | |||
popup.style.display = 'none'; | |||
document.cookie = 'popupClosed=true; expires=' + new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toUTCString(); // Set cookie to expire in one year | |||
}); | |||
} | |||
} |
Latest revision as of 23:37, 27 March 2024
/* Any JavaScript here will be loaded for all users on every page load. */ function initMap() { var element = document.getElementById('map'); var dataSrc = element.getAttribute('data-src'); if (dataSrc) { var coordinates = dataSrc.split(/[;,]/).map(function(coord) { return parseFloat(coord.trim()); }); var mapOptions = { center: { lat: coordinates[0], lng: coordinates[1] }, zoom: 4 }; var map = new google.maps.Map(element, mapOptions); var marker = new google.maps.Marker({ position: { lat: coordinates[0], lng: coordinates[1] }, map: map, title: 'Marker Title' }); } else { // Add the 'no-data' class if data-src doesn't exist element.classList.add('no-data'); } } var script = document.createElement('script'); script.src = 'https://maps.googleapis.com/maps/api/js?key=AIzaSyBIrgq5dZQ8haJIfKHbGco90OpDwYLiXwA&callback=initMap'; script.async = true; script.defer = true; document.head.appendChild(script); if (document.body.classList.contains('page-Main_Page')) { if (document.cookie.indexOf('popupClosed=true') === -1) { var popup = document.createElement('div'); popup.className = 'popup'; var popupContent = document.createElement('span'); popup.innerHTML = '<span><h>Content Note</h><p>As a database of 19th-century material, some of the texts in this Wiki may contain racist, offensive, and discriminatory language and imagery.</p> <a class="button">okay</a></span>'; document.body.insertBefore(popup, document.body.firstChild); popup.style.display = 'block'; popup.addEventListener('click', function () { popup.style.display = 'none'; document.cookie = 'popupClosed=true; expires=' + new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toUTCString(); // Set cookie to expire in one year }); } }