Difference between revisions of "MediaWiki:Common.js"

From Australian Traditional Music Tunes
Jump to navigationJump to search
(Update code to insert Replace text toolbar link)
(Comment out removal of "What links here" so can use for page renaming)
 
(2 intermediate revisions by the same user not shown)
Line 61: 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=' );
Line 67: Line 67:
 
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 {
+
} else { // additions for logged in users
ModifySidebar( 'add', 'toolbox', 'Replace text', 'Special:ReplaceText' );  
+
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 );