MediaWiki:Common.js

m
m
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. */
 +
/**
 +
* Make recent changes and watchlist options collapsible
 +
*
 +
* @source: http://www.mediawiki.org/wiki/Snippets/Collapsible_ChangesList_options
 +
* @rev: 2
 +
*/
 +
if ( $.inArray( mw.config.get( 'wgCanonicalSpecialPageName' ), ['Watchlist', 'Recentchanges']) != -1 ) {
 +
        var    $options = $( '#mw-watchlist-options, .rcoptions' ),
 +
                $legend = $options.find( 'legend' );
 +
        if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Watchlist' ) {
 +
                $options.contents().filter( function() {
 +
                                // Keep text-nodes, filter out the rest
 +
                                return this.nodeType == 3;
 +
                        } )
 +
                        // Wrap the second text node (intro paragraph) in a tag so we can easily exempt it later when toggling the options
 +
                        .eq(1).wrap( '<p id="mw-watchlist-options-intro" />' );
 +
        }
 +
        $options.wrapInner( '<div id="mw-options-wrapper" />' );
 +
 +
        $legend.wrapInner( '<a href="#" />' )
 +
                .click( function( e ) {
 +
                        e.preventDefault(); // avoid jumping to the top (href=#)
 +
 +
                        $( '#mw-options-wrapper' ).toggle( 'fast' );
 +
 +
                } )
 +
                .add( '#mw-watchlist-options-intro' )
 +
                .prependTo( $options ); // Put the legend and intro outside the wrapper
 +
        $( '#mw-options-wrapper' ).hide( ); // Hide by default
 +
}

Revision as of 12:25, 1 December 2011

/* Any JavaScript here will be loaded for all users on every page load. */
/**
 * Make recent changes and watchlist options collapsible
 *
 * @source: http://www.mediawiki.org/wiki/Snippets/Collapsible_ChangesList_options
 * @rev: 2
 */
if ( $.inArray( mw.config.get( 'wgCanonicalSpecialPageName' ), ['Watchlist', 'Recentchanges']) != -1 ) {
        var     $options = $( '#mw-watchlist-options, .rcoptions' ),
                $legend = $options.find( 'legend' );
        if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Watchlist' ) {
                $options.contents().filter( function() {
                                // Keep text-nodes, filter out the rest
                                return this.nodeType == 3;
                        } )
                        // Wrap the second text node (intro paragraph) in a tag so we can easily exempt it later when toggling the options
                        .eq(1).wrap( '<p id="mw-watchlist-options-intro" />' );
        }
        $options.wrapInner( '<div id="mw-options-wrapper" />' );

        $legend.wrapInner( '<a href="#" />' )
                .click( function( e ) {
                        e.preventDefault(); // avoid jumping to the top (href=#)

                        $( '#mw-options-wrapper' ).toggle( 'fast' );

                } )
                .add( '#mw-watchlist-options-intro' )
                .prependTo( $options ); // Put the legend and intro outside the wrapper
        $( '#mw-options-wrapper' ).hide( ); // Hide by default
}
rss feed for my website