MediaWiki:Common.js
Aus ZUM-Unterrichten
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Strg+F5
/* Das folgende JavaScript wird für alle Benutzer geladen. */
(function(){
console.log("initializing zum-toggle");
const run = function() {
document.querySelectorAll('[data-zum-toggle-target]').forEach(function (elem) {
var target = elem.dataset.zumToggleTarget;
if(!target){ return; }
elem.addEventListener('click', function (ev) {
var value = elem.dataset.zumToggleValue !== 'true';
document.querySelectorAll(target).forEach(function (tElem) {
tElem.dataset.zumToggleVisible = value;
});
elem.dataset.zumToggleValue = String(value);
});
});
};
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", run);
} else {
run();
}
})();
/*
* Dialog Javascript for
* Vorlage:DialogButton
*
*
*/
(function(){
/* add dialog opener event handler */
const run = ()=>{
document.querySelectorAll('[data-dialog-opener-id]').forEach((elem) => {
if(elem.dataset.dialogOpenerAdded === 'true') { return; }
const dialogId = elem.dataset.dialogOpenerId;
const dialog = document.getElementById(dialogId);
elem.dataset.dialogOpenerAdded = 'true';
elem.addEventListener('click', (ev) => {
dialog.showModal();
ev.stopPropagation();
return false;
});
});
};
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", run);
} else {
run();
}
})();
(function(){
/* close on click outside of dialog content */
const run = ()=>{
document.querySelectorAll('dialog.zum-dialog').forEach((elem) => {
if(elem.dataset.dialogCloseonBackdropAdded === 'true') { return; }
elem.dataset.dialogCloseonBackdropAdded = 'true';
elem.addEventListener('mousedown', (ev) => {
if(ev.target !== elem){return true;}
const rect = ev.target.getBoundingClientRect();
if(ev.x >= rect.left
&& ev.x <= rect.right
&& ev.y >= rect.top
&& ev.y <= rect.bottom) { return true; }
ev.target.close();
ev.stopPropagation();
return false;
});
});
};
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", run);
} else {
run();
}
})();
(function(){
/*cleanup empty p tags, at beginning and end of dialogs created by Vorlage:DialogButton */
const run = () => {
document.querySelectorAll('dialog.zum-dialog').forEach((elem) => {
if(elem.dataset.dialogCleanedup === 'true') { return; }
elem.dataset.dialogCleanedup = 'true';
[elem.firstElementChild, elem.lastElementChild]
.filter((e) => e && e.tagName === 'P' && e.textContent === '')
.forEach((e) => elem.removeChild(e))
});
document.querySelectorAll('[data-dialog-opener-id]').forEach((elem) => {
if(elem.dataset.dialogCleanedup === 'true') { return; }
elem.dataset.dialogCleanedup = 'true';
[elem.firstElementChild, elem.lastElementChild]
.filter((e) => e && e.tagName === 'P' && e.textContent === '')
.forEach((e) => elem.removeChild(e))
});
};
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", run);
} else {
run();
}
})();
(function(){
/* overrule mediawiki default popup-close event handler */
const run = () => {
document.querySelectorAll('dialog.zum-dialog')
.forEach((elem) => elem.querySelectorAll('button.popup-close')
.forEach((btn) => btn.addEventListener('click', (ev) => {
ev.stopImmediatePropagation();
})));
};
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", run);
} else {
run();
}
})();