User:Majr/hydra.js

/** *  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, or it won't work (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' ).removeClass( '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( '.collapse-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 also 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 mousever * * 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 and 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 );        }    } ); }

/** * Blank the "Other/additional reason" field when deleting pages * * This is so we don't get stupid vandalism and * spam and whatnot preserved for posterity in the * delete log */ if ( $.inArray( 'sysop', mw.config.get( 'wgUserGroups' ) ) > -1 ) { var summary = $( '#wpReason' ), summaryVal = summary.prop( 'value' ); if ( mw.config.get( 'wgAction' ) == 'delete' && ( summaryVal.indexOf( 'content was: "' ) == 0 ||    summaryVal.indexOf( 'content before blanking was: "' ) == 0 ) ) { var deleteReason = summaryVal.match( /\{\{(?:template:)?delete\|([^}]*)(\}\})?/i ); if ( deleteReason ) { if ( deleteReason[2] ) { summary.prop( 'value', deleteReason[1] ); } else { summary.prop( 'value', deleteReason[1].slice( 0, -1 ) ); }       } else { summary.prop( 'value', '' ); }   } }

} );