Difference between revisions of "MediaWiki:Common.js"

From Australian Traditional Music People
Jump to navigationJump to search
(Add code to allow modification of the tools box in sidebar)
 
(Add code to remove Special pages link for non logged in users)
Line 45: Line 45:
 
if (
 
if (
 
listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
 
listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
listelements[i].getElementsByTagName( 'a' )[0].href == link
+
listelements[i].getElementsByTagName( 'a' )[0].href.includes(link) )
)
 
 
{
 
{
 
list.removeChild( listelements[i] );
 
list.removeChild( listelements[i] );
Line 61: Line 60:
 
function CustomizeModificationsOfSidebar() {
 
function CustomizeModificationsOfSidebar() {
 
// adds items to toolbox
 
// adds items to toolbox
// ModifySidebar( 'add', 'toolbox', 'CategoryTree', '/people/index.php?title=Special:CategoryTree' );
+
// ModifySidebar( 'add', 'toolbox', 'CategoryTree', '/tunes/index.php?title=Special:CategoryTree' );
 
// removes items from toolbox
 
// removes items from toolbox
 
ModifySidebar( 'remove', 'toolbox', 'What links here', 'Special:WhatLinksHere/' );
 
ModifySidebar( 'remove', 'toolbox', 'What links here', 'Special:WhatLinksHere/' );
Line 67: Line 66:
 
ModifySidebar( 'remove', 'toolbox', 'Permanent link', 'oldid=' );
 
ModifySidebar( 'remove', 'toolbox', 'Permanent link', 'oldid=' );
 
ModifySidebar( 'remove', 'toolbox', 'Page information', 'action=info' );
 
ModifySidebar( 'remove', 'toolbox', 'Page information', 'action=info' );
 +
if (wgUserName == null ) { // not logged in user
 +
ModifySidebar( 'remove', 'toolbox', 'Special pages', 'Special:SpecialPages' );
 +
}
 
}
 
}
  
 
jQuery( CustomizeModificationsOfSidebar );
 
jQuery( CustomizeModificationsOfSidebar );

Revision as of 12:14, 1 February 2017

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

/* Tools sidebar modification code from: 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.includes(link) )
				{
					list.removeChild( listelements[i] );
				}
			}
		}

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

function CustomizeModificationsOfSidebar() {
	// adds items to toolbox
	// ModifySidebar( 'add', 'toolbox', 'CategoryTree', '/tunes/index.php?title=Special:CategoryTree' );
	// removes items from toolbox
	ModifySidebar( 'remove', 'toolbox', 'What links here', 'Special:WhatLinksHere/' );
	ModifySidebar( 'remove', 'toolbox', 'Related changes', 'Special:RecentChangesLinked/' );
	ModifySidebar( 'remove', 'toolbox', 'Permanent link', 'oldid=' );
	ModifySidebar( 'remove', 'toolbox', 'Page information', 'action=info' );
	if (wgUserName == null ) { // not logged in user
		ModifySidebar( 'remove', 'toolbox', 'Special pages', 'Special:SpecialPages' ); 
	}
}

jQuery( CustomizeModificationsOfSidebar );