Difference between revisions of "MediaWiki:Common.js"

From Australian Traditional Music Tunes
Jump to navigationJump to search
(Add code to remove Special pages link for non logged in users)
(Comment out removal of "What links here" so can use for page renaming)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
/* Any JavaScript here will be loaded for all users on every page load. */
 
/* 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 */
 
/* Tools sidebar modification code from: https://www.mediawiki.org/wiki/Manual:Interface/Sidebar */
  
Line 62: Line 61:
 
// ModifySidebar( 'add', 'toolbox', 'CategoryTree', '/tunes/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/' );
 
ModifySidebar( 'remove', 'toolbox', 'Related changes', 'Special:RecentChangesLinked/' );
 
ModifySidebar( 'remove', 'toolbox', 'Related changes', 'Special:RecentChangesLinked/' );
 
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
 
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', '/tunes/index.php?title=Special:ReplaceText' );  
 
}
 
}
 
}
 
}
  
 
jQuery( CustomizeModificationsOfSidebar );
 
jQuery( CustomizeModificationsOfSidebar );

Latest revision as of 12:44, 8 May 2023

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

jQuery( CustomizeModificationsOfSidebar );