MediaWiki:Gadget-EnhancedUndelete.js

From Zelda Dungeon Wiki
Jump to navigation Jump to search
Want an adless experience? Log in or Create an account.

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl+F5 or Ctrl+R (Command+R on a Mac)
  • Google Chrome: press Ctrl+Shift+R (Command+Shift+R on a Mac)
  • Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl+F5
  • Konqueror: click Reload or press F5
  • Opera: clear the cache in Tools → Preferences
// Enhanced Undelete Tool
//
// Adds a "Select All" and "Invert Selection" button to Special:Undelete. 
// Used for administrators only.
 
if ( mw.config.get('wgCanonicalSpecialPageName') == 'Undelete' ) {
	jQuery( document ).ready( function() {
		if ( mw.config.get('wgCanonicalSpecialPageName') != 'Undelete' ) {
			return;
		}
 
		var fi = document.getElementsByTagName( 'input' );
		for ( i = 0; i < fi.length; i++ ) {
			if ( !fi[i].hasAttribute( 'type' ) ) {
				continue;
			}
			if ( fi[i].getAttribute( 'type' ) == 'reset' ) {
				var sa = document.createElement( 'input' );
				sa.setAttribute( 'type', 'button' );
				sa.setAttribute( 'value', 'Select All' );
				fi[i].parentNode.insertBefore( sa, fi[i].nextSibling );
				sa.onclick = function() {
					for ( var i = 0; i < fi.length; i++ ) {
						if ( fi[i].hasAttribute( 'type' ) && fi[i].getAttribute( 'type' ) == 'checkbox' ) {
							fi[i].checked = true;
						}
					}
				};
 
				// add invert selection button
				var inv = document.createElement( 'input' );
				inv.setAttribute( 'type', 'button' );
				inv.setAttribute( 'value', 'Invert All' );
				fi[i].parentNode.insertBefore( inv, fi[i].nextSibling );
				inv.onclick = function() {
					// if a deleted edit is checked, uncheck it, and vis-versa.
					for ( var i = 0; i < fi.length; i++ ) {
						if ( fi[i].hasAttribute( 'type' ) && fi[i].getAttribute( 'type' ) == 'checkbox' ) {
							fi[i].checked = !fi[i].checked;
						}
					}
				}
			} else if ( fi[i].getAttribute( 'type' ) == 'checkbox' ) {
				fi[i].checked = true;
			}
		}
	});
}