Difference between revisions of "MediaWiki:Common.js"

From Australian Traditional Music People
Jump to navigationJump to search
(Add code to remove Special pages link for non logged in users)
(Correct URL error when adding Replace text)
 
(One intermediate revision by the same user not shown)
Line 60: Line 60:
 
function CustomizeModificationsOfSidebar() {
 
function CustomizeModificationsOfSidebar() {
 
// adds items to toolbox
 
// adds items to toolbox
// ModifySidebar( 'add', 'toolbox', 'CategoryTree', '/tunes/index.php?title=Special:CategoryTree' );
+
// ModifySidebar( 'add', 'toolbox', 'CategoryTree', '/people/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 67:
 
ModifySidebar( 'remove', 'toolbox', 'Page information', 'action=info' );
 
ModifySidebar( 'remove', 'toolbox', 'Page information', 'action=info' );
 
if (wgUserName == null ) { // not logged in user
 
if (wgUserName == null ) { // not logged in user
ModifySidebar( 'remove', 'toolbox', 'Special pages', 'Special:SpecialPages' );  
+
                ModifySidebar( 'remove', 'toolbox', 'Special pages', 'Special:SpecialPages' );
}
+
        } else { // additions for logged in users
 +
                ModifySidebar( 'add', 'toolbox', 'Replace text', '/people/index.php?title=Special:ReplaceText' );
 +
        }
 
}
 
}
  
 
jQuery( CustomizeModificationsOfSidebar );
 
jQuery( CustomizeModificationsOfSidebar );

Latest revision as of 10:02, 23 March 2018

/* 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', '/people/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' );
        } else { // additions for logged in users
                ModifySidebar( 'add', 'toolbox', 'Replace text', '/people/index.php?title=Special:ReplaceText' ); 
        }
}

jQuery( CustomizeModificationsOfSidebar );