MediaWiki:Common.js

/* Any JavaScript here will be loaded for all users on every page load. */

/** * Extra toolbar options * * Description: Adds extra buttons to the editing toolbar. * Due to the way this works, it has to be loaded before the * toolbar loads (so it can't be in the onload function). *  * Maintainers: wikipedia:User:MarkS, wikipedia:User:Voice of All, wikipedia:User:R. Koot */ var buttons = ;

$.each( buttons, function { mwCustomEditButtons.push( this ); } );

$( function { 'use strict';

/** * Collapsible tables * * Based on http://www.mediawiki.org/wiki/Manual:Collapsible_tables#Common.js_script_.28before_1.18.29 * * @maintainers User:Ultradude25 */ if ( $( 'table.collapsible' ).length ) { var collapseText = 'Collapse', expandText = 'Expand', collapseButton, buttonText = ' [ ' + collapseText + ' ] '; $( 'table.collapsible' ).each( function {       var table = $( this ), header;        if ( table.find( '.collapse-button' ).length ) {            header = table.find( 'tr:first .collapse-button' );        } else {            header = table.find( 'tr:first th:first' );        }        if ( !header.length || !table.find( 'tr' ).not( 'tr:first' ).text.replace( /\n/g, '' ).length ) {           return true;        }        if ( table.hasClass( 'collapse-button-none' ) ) {            header.append( buttonText );        } else {            header.prepend( buttonText );        }        collapseButton = table.find( '.collapsible-button .jslink' );        if ( table.hasClass( 'collapsed' ) ) {            collapseButton.text( expandText );        }        collapseButton.click( function( e ) { // Stop table sorting activating when clicking link e.stopPropagation; if ( table.hasClass( 'collapsed' ) ) { table.removeClass( 'collapsed' ).addClass( 'expanded' ); $( this ).text( collapseText ); } else { table.removeClass( 'expanded' ).addClass( 'collapsed' ); $( this ).text( expandText ); }       } );    } ); }

/** * Fix edit summary prompt for undo * * Fixes the fact that the undo function combined with the "no edit summary prompter" * causes problems if leaving the edit summary unchanged. * Added by wikipedia:User:Deskana, code by wikipedia:User:Tra. * See https://bugzilla.wikimedia.org/show_bug.cgi?id=8912 */ if ( document.location.search.indexOf( "undo=" ) !== -1 && document.getElementsByName( 'wpAutoSummary' )[0] ) { document.getElementsByName( 'wpAutoSummary' )[0].value='1'; }

/** * Element animator (used in Template:Grid) * * Will cycle the active class on any child elements within an element with the animated class. */ if ( $( '.animated' ).length ) { setInterval( function {       $( '.animated' ).each( function { var current = $( this ).find( '.active' ).removeClass( 'active' ), next = current.next; if ( !current.next.length ) { next = $( this ).children.eq( 0 ); }           next.addClass( 'active' ); } );   }, 2000 ); }

/** * Pause grid templates with lots of cells in them (e.g. Template:Grid/Crafting Table) on mouseover * * This is so people have a chance to look at each image on the cell * and click on pages they want to view. */ function pauseGrid( grid ) { $( grid ).hover( function {        $( this ).find( '.grid .animated' ).removeClass( 'animated' ).addClass( 'paused' );    }, function {        $( this ).find( '.grid .paused' ).removeClass( 'paused' ).addClass( 'animated' );    } ); } pauseGrid( '.grid-Crafting_Table' ); pauseGrid( '.grid-Furnace' ); pauseGrid( '.grid-Brewing_Stand' );

/** * Add fake last-child class in navboxes for IE8 */ if ( $.client.profile.name === 'msie' && $.client.profile.versionBase === '8' ) { $( '.navbox-list li:last' ).addClass( 'last-child' ); }

/** * Collapsible details for Template:History * * On click, this hides any rows with the overview class, and shows any rows with * the details class, and visa versa. */ if ( $( '.history .details' ).length ) { var histExpandText = 'Expand details', histCollapseText = 'Collapse details';

$( '.history th:first' ).append( ' [ ' + histExpandText + ' ] ' );

var histLink = $( '.toggleHistDetails .jslink' ); histLink.click( function {       $( '.overview' ).toggle;        $( '.details' ).toggle;        if ( histLink.text === histExpandText) {            histLink.text( histCollapseText );        } else {            histLink.text( histExpandText );        }    } ); }

/** * Fix missing toolbar images */ $( '#mw-editbutton-bold' )    .prop( 'src', '//upload.wikimedia.org/wikipedia/commons/e/e2/Button_bold.png' ); $( '#mw-editbutton-italic' )  .prop( 'src', '//upload.wikimedia.org/wikipedia/commons/1/1d/Button_italic.png' ); $( '#mw-editbutton-link' )    .prop( 'src', '//upload.wikimedia.org/wikipedia/commons/c/c0/Button_link.png' ); $( '#mw-editbutton-extlink' ) .prop( 'src', '//upload.wikimedia.org/wikipedia/commons/e/ec/Button_extlink.png' ); $( '#mw-editbutton-headline' ) .prop( 'src', '//upload.wikimedia.org/wikipedia/commons/f/fb/Button_headline.png' ); $( '#mw-editbutton-image' )   .prop( 'src', '//upload.wikimedia.org/wikipedia/commons/d/de/Button_image.png' ); $( '#mw-editbutton-media' )   .prop( 'src', '//upload.wikimedia.org/wikipedia/commons/1/19/Button_media.png' ); $( '#mw-editbutton-nowiki' )  .prop( 'src', '//upload.wikimedia.org/wikipedia/commons/8/82/Nowiki_icon.png' ); $( '#mw-editbutton-signature' ).prop( 'src', '//upload.wikimedia.org/wikipedia/commons/6/6d/Button_sig.png' ); $( '#mw-editbutton-hr' )      .prop( 'src', '//upload.wikimedia.org/wikipedia/commons/0/0d/Button_hr.png' );

} );