MediaWiki:Common.js: Difference between revisions

From Alpine Linux
(Link to Wiki maintenance instead of Special pages for administrators)
(Don't change 'Special pages' link)
 
(6 intermediate revisions by one other user not shown)
Line 52: Line 52:
{
{
list.removeChild( listelements[i] );
list.removeChild( listelements[i] );
}
}
}
if ( action == 'change' ) {
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].setAttribute( 'href', link );
}
}
}
}
Line 63: Line 80:


function CustomizeModificationsOfSidebar() {
function CustomizeModificationsOfSidebar() {
ModifySidebar( 'remove', 'toolbox', 'Special pages', 'https://wiki.alpinelinux.org/wiki/Special:SpecialPages' );
// ModifySidebar( 'remove', 'toolbox', 'Special pages', 'https://wiki.alpinelinux.org/wiki/Special:SpecialPages' );
ModifySidebar( 'add', 'toolbox', 'Wiki maintenance', 'https://wiki.alpinelinux.org/wiki/Alpine_Linux:Wiki_maintenance' );
// ModifySidebar( 'change', 'toolbox', 'Special pages', 'https://wiki.alpinelinux.org/wiki/User:Dubiousjim/Special' );
}
}


if ( mw.config.get( 'wgUserGroups', [] ).indexOf( 'administrator' ) !== -1 ) {
jQuery( CustomizeModificationsOfSidebar );
jQuery( CustomizeModificationsOfSidebar );
}

Latest revision as of 11:47, 14 January 2022

/* Any JavaScript here will be loaded for all users on every page load. */

/* To Modify top sections of Sidebar, just edit https://wiki.alpinelinux.org/wiki/MediaWiki:Sidebar
 * To Modify the "Toolbox" section, use CustomizeModificationsOfSidebar below
 * See https://www.mediawiki.org/wiki/Manual:Interface/Sidebar
 */

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] );
				}
			}
		}

		if ( action == 'change' ) {
			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].setAttribute( 'href', link );
				}
			}
		}

	} catch( e ) {
		// let's just ignore what's happened
		return;
	}
}

function CustomizeModificationsOfSidebar() {
	// ModifySidebar( 'remove', 'toolbox', 'Special pages', 'https://wiki.alpinelinux.org/wiki/Special:SpecialPages' );
	// ModifySidebar( 'change', 'toolbox', 'Special pages', 'https://wiki.alpinelinux.org/wiki/User:Dubiousjim/Special' );
}

jQuery( CustomizeModificationsOfSidebar );