MediaWiki:Common.js
Appearance
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */
function ModifySidebar( action, section, name, link ) {
try {
switch ( section ) {
case 'languages':
var target = 'p-lang';
break;
case 'toolbox':
var target = 'p-tb';
break;
case 'navigation':
var target = 'p-navigation';
break;
default:
var target = 'p-' + section;
break;
}
if ( action == 'add' ) {
var node = document.getElementById( target )
.getElementsByTagName( 'div' )[0]
.getElementsByTagName( 'ul' )[0];
var aNode = document.createElement( 'a' );
var liNode = document.createElement( 'li' );
aNode.appendChild( document.createTextNode( name ) );
aNode.setAttribute( 'href', link );
liNode.appendChild( aNode );
liNode.className = 'plainlinks';
node.appendChild( liNode );
}
if ( action == 'remove' ) {
var list = document.getElementById( target )
.getElementsByTagName( 'div' )[0]
.getElementsByTagName( 'ul' )[0];
var listelements = list.getElementsByTagName( 'li' );
for ( var i = 0; i < listelements.length; i++ ) {
if (
listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
listelements[i].getElementsByTagName( 'a' )[0].href == link
)
{
list.removeChild( listelements[i] );
}
}
}
} catch( e ) {
// let's just ignore what's happened
return;
}
}
function CustomizeModificationsOfSidebar() {
// Adds [[Special:CategoryTree|Special:CategoryTree]] to toolbox
// ModifySidebar( 'add', 'toolbox', 'CategoryTree', 'https://asist.a2hosted.com/index.php/Special:CategoryTree' );
// Removes [[Special:Upload|Special:Upload]] from toolbox
ModifySidebar( 'remove', 'toolbox', 'Upload file', 'https://asist.a2hosted.com/index.php/Special:Upload' );
// Removes [[Special:Specialpages|Special:Special pages]] from toolbox
ModifySidebar( 'remove', 'toolbox', 'Special pages', 'https://asist.a2hosted.com/index.php/Special:SpecialPages' );
}
jQuery( CustomizeModificationsOfSidebar );
/* --- Move short description under the title in Vector 2022 --- */
(function () {
// Only on Vector 2022
if (!document.body.classList.contains('skin-vector-2022')) return;
function moveShortDesc() {
var $titlebar = $('.vector-page-titlebar');
var $title = $titlebar.find('h1').first();
var $siteSub = $('#siteSub');
// Need populated text; the extension fills it after load
if ($titlebar.length && $title.length && $siteSub.length && $siteSub.text().trim().length) {
if ($titlebar.find('#siteSub').length === 0) {
$siteSub.detach().insertAfter($title); // move into the titlebar
$siteSub.removeClass('noprint').show();
}
return true;
}
return false;
}
// Try on content ready
mw.hook('wikipage.content').add(function () {
// immediate try
if (moveShortDesc()) return;
// Watch for the shortdesc to appear/populate, then move it once
var sub = document.getElementById('siteSub');
if (!sub) return;
var observer = new MutationObserver(function () {
if (moveShortDesc()) {
observer.disconnect();
}
});
observer.observe(sub, { childList: true, characterData: true, subtree: true });
// Safety: stop observing after a few seconds
setTimeout(function () { observer.disconnect(); }, 8000);
});
})();