MediaWiki:Gadget-site-HideFilterBar.js
Jump to navigation
Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
Documentation for this user script can be added at MediaWiki:Gadget-site-HideFilterBar. This user script seems to have an accompanying .css page at MediaWiki:Gadget-site-HideFilterBar.css. |
/*global jQuery:false, mediaWiki:false*/
( function( $, mw ) {
'use strict';
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) !== 'Newimages' ) return;
var $label,
loadTranslation, cleanMessage, msg,
$optBots = $( '#mw-input-showbots' ),
optBots = $optBots[0],
buttonOptions = {
icons: {
primary: 'ui-icon-gear'
}
};
loadTranslation = function() {
var messages = {};
$( '.com-newimages-translations' ).find( 'span' ).each( function( i, elem ) {
var $elem = $( elem ),
key = $elem.attr( 'class' ) || '',
message = $elem.text();
key = key.match( /com-newimages-translation-\S*/ );
if ( !key ) return;
messages[key[0]] = cleanMessage( message );
} );
mw.messages.set( messages );
};
cleanMessage = function( message ) {
return message.replace( /^\((.+)\)$/, '$1' );
};
msg = function( /* params */ ) {
var args = Array.prototype.slice.call( arguments, 0 );
args[0] = 'com-newimages-translation-' + args[0];
var msg = mw.message.apply( mw, args );
return msg.parse();
};
// Silently fail
if ( !optBots ) return;
loadTranslation();
$label = $optBots.siblings( 'label' );
// It should be visible that the button is "enabled"
// IMHO a bug in MW UI button implementation
// Cf. http://jqueryui.com/button/#checkbox
if ( mw.config.get( 'skin' ) === 'vector' ) {
mw.util.addCSS( '.ui-button.ui-state-active { background:#F0F0F0 !important; }' );
}
$optBots.closest( 'form' ).hide();
$optBots.parent().children().appendTo( '#com-opt-bots-container' );
$label.text( function ( i, val ) {
return cleanMessage( $.trim( val ) );
} );
mw.loader.using( ['jquery.ui', 'mediawiki.Uri'], function() {
if ( optBots.checked ) {
buttonOptions.label = msg( 'hidebots' );
}
$optBots.button( buttonOptions );
$optBots.on( 'change', function() {
var uri = new mw.Uri();
$optBots.button( { disabled: true } );
if ( optBots.checked ) {
uri.query.showbots = 1;
} else {
if ( Object.hasOwnProperty.call( uri.query, 'showbots' ) ) {
delete uri.query.showbots;
}
}
location.href = uri.toString();
} );
} );
}( jQuery, mediaWiki ) );