MediaWiki:Gadget-Infobox.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.
This user script seems to have a documentation page at MediaWiki:Gadget-Infobox. |
( function ( $ ) {
'use strict';
$( function () {
$( '.switcher-container' ).each( function ( i ) {
var activeElement, $showRadio, $showAllRadio;
var elements = [], container = this;
var radioName = 'switcher-' + i;
$( this ).children().each( function () {
var self = this;
var $labelContainer = $( this ).find( '.switcher-label' );
var $labelText = $labelContainer.contents();
if ( !$labelText.length ) {
return;
}
elements.push( this );
$showRadio = $( '<input type="radio" />' ).attr( 'name', radioName ).click( function () {
$( activeElement ).hide();
$( self ).show();
activeElement = self;
} );
$( '<label style="white-space: nowrap"></label>' ).append( $showRadio ).append( $labelText ).appendTo( container ).after( '<wbr>' );
if ( !activeElement ) {
activeElement = this;
$showRadio.prop( 'checked', true );
} else if ( $labelContainer.is( '[data-switcher-default]' ) ) {
$showRadio.click();
} else {
$( this ).hide();
}
$labelContainer.remove();
} );
if ( elements.length > 1 ) {
$.when( mw.loader.using( [ 'mediawiki.api' ] ) )
.then( function () {
return new mw.Api().loadMessagesIfMissing( ['Pagetriage-filter-all'] );
})
.then( function () {
$showAllRadio = $( '<input type="radio" />' ).attr( 'name', radioName ).click( function () {
$( elements ).show();
activeElement = elements;
} );
$( '<label style="display:block">' )
.text( " " + mw.msg( 'Pagetriage-filter-all' ) )
.prepend( $showAllRadio )
.appendTo( container );
} );
} else if ( elements.length === 1 ) {
$showRadio.remove();
}
} );
} );
} )( jQuery );