|
|
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. */ |
| 'use strict';
| | mw.loader.load( '/index.php?title=MediaWiki:Gadget-switcher.js&action=raw&ctype=text/javascript' ); |
| $( function () {
| |
| $.each( document.querySelectorAll( '.switcher-container' ), function ( i, container ) {
| |
| var selected, $radio;
| |
| var switchers = []
| |
| var radioName = 'switcher-' + i;
| |
| $.each( container.children, function ( j, switcher ) {
| |
| var label = switcher.querySelector( '.switcher-label' );
| |
| if ( !label || !label.childNodes.length ) {
| |
| return;
| |
| }
| |
| switchers.push( switcher );
| |
| $radio = $( '<input>' ).prop({ type: 'radio', name: radioName }).on( 'click', function () {
| |
| $( selected ).hide();
| |
| $( switcher ).show();
| |
| selected = switcher;
| |
| } );
| |
| if ( !selected ) {
| |
| // Mark the first one as selected
| |
| selected = switcher;
| |
| $radio.prop( 'checked', true );
| |
| } else if ( label.getAttribute( 'data-switcher-default' ) !== null ) {
| |
| // Custom default
| |
| $radio.click();
| |
| } else {
| |
| // Hide non-default
| |
| $( switcher ).hide();
| |
| }
| |
| $( '<label style="display:block"></label>' ).append( $radio, label.childNodes ).appendTo( container );
| |
| $( label ).remove();
| |
| } );
| |
| if ( switchers.length > 1 ) {
| |
| $( '<label style="display:block">Show all</label>' ).prepend(
| |
| $( '<input>' ).prop({ type: 'radio', name: radioName }).on( 'click', function () {
| |
| $( switchers ).show();
| |
| selected = switchers;
| |
| } )
| |
| ).appendTo( container );
| |
| }
| |
| if ( switchers.length === 1 ) {
| |
| $radio.remove();
| |
| }
| |
| } );
| |
| } );
| |