MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
Import-sysop (talk | contribs) (transformed) |
WikiDevops (talk | contribs) No edit summary |
||
(3 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
loadScript('/MediaWiki:Scripting.js?action=raw&ctype=text/javascript'); | loadScript('/MediaWiki:Scripting.js?action=raw&ctype=text/javascript'); | ||
function makeBlock(el) { | |||
el.style.display = 'block'; | |||
} | |||
function makeInline(el) { | |||
el.style.display = 'inline'; | |||
} | |||
// show edit items when a user is logged in | |||
// show edit items when a user is logged in | |||
if (window.mw.config.values.wgUserId) { | |||
Array.from(document.getElementsByClassName('controls-loggedin')).forEach(makeBlock); | |||
Array.from(document.getElementsByClassName('controls-loggedin-inline')).forEach(makeInline); | |||
} | |||
// make sunwater logo area clickable | |||
document.querySelector('#p-tb').addEventListener('click', function(e) { | |||
function isInPath(target) { | |||
while (target) { | |||
if (target.nodeName === 'A') return true; | |||
target = target.parentNode; | |||
} | |||
return false; | |||
} | |||
const isMenuItem = isInPath(e.target); | |||
if (!isMenuItem) { | |||
document.location = 'https://sunwater.org'; | |||
return false; | |||
} | |||
}); | |||
function parse(data) { | function parse(data) { |
Latest revision as of 21:33, 20 August 2023
loadScript('/MediaWiki:Scripting.js?action=raw&ctype=text/javascript');
function makeBlock(el) {
el.style.display = 'block';
}
function makeInline(el) {
el.style.display = 'inline';
}
// show edit items when a user is logged in
// show edit items when a user is logged in
if (window.mw.config.values.wgUserId) {
Array.from(document.getElementsByClassName('controls-loggedin')).forEach(makeBlock);
Array.from(document.getElementsByClassName('controls-loggedin-inline')).forEach(makeInline);
}
// make sunwater logo area clickable
document.querySelector('#p-tb').addEventListener('click', function(e) {
function isInPath(target) {
while (target) {
if (target.nodeName === 'A') return true;
target = target.parentNode;
}
return false;
}
const isMenuItem = isInPath(e.target);
if (!isMenuItem) {
document.location = 'https://sunwater.org';
return false;
}
});
function parse(data) {
const text = data.text();
return text; // Promise
}
function evals(script) {
try {
eval(script);
} catch (e) {
console.log('failed', e);
}
}
function loadScript(url) {
fetch(url)
.then(parse)
.then(evals);
}