Difference between revisions of "MediaWiki:Common.js"

From docs
Jump to: navigation, search
(Created page with "Any JavaScript here will be loaded for all users on every page load.: ///////////////////////////////////////////////////////// // Code snippet to make your sidebar item...")
(No difference)

Revision as of 20:15, 7 October 2013

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

/////////////////////////////////////////////////////////
// Code snippet to make your sidebar items expandable  //
// Use this code ONLY for the Monobook skin.           //
/////////////////////////////////////////////////////////
 
$( document ).ready( function() {
        // Set the default expanded items by their headline
        var defaultExpandItems = ['Navigation'];
        // Set the basic-name for the cookies, which save the current state of expanding
        var expandCookieName = 'disdance_project_wiki_nav_expanded_';
 
        var maxHeights = [];
        var expandeds = [];
        var labels = [];
        initNav();
});
 
function initNav() {
        $( '#p-logo' ).css({'position': 'relative', 'display': 'block'});
        $( '.generated-sidebar h5,#p-tb h5 ').each( function( i ) {
                var id = $( this ).parent().attr( 'id' );
                maxHeights[id] = $( this ).next( 'div' ).height();
                var str = $( this ).html();
                labels[id] = str;
 
                if ( $.cookie( expandCookieName + id ) == 'false' ) {
                        expandeds[id] = false;
                        minimize( $( this ) );
                } else if ( $.cookie( expandCookieName + id ) == 'true' ) {
                        expandeds[id] = true;
                        maximize( $( this ) );
                } else if ( defaultExpandItems.indexOf( str ) == -1 ) {
                        expandeds[id] = false;
                        minimize( $( this ) );
                } else {
                        expandeds[id] = true;
                        maximize( $( this ) );
                }
                $( this ).css({'cursor': 'pointer'});
                $( this ).click( toggleNav );
        } );
}
 
function minimize( target ) {
        var id = $( target ).parent().attr( 'id' );
        // You can change the expires parameter to save the cookie longer/shorter than 7 days like in this code
        $.cookie( expandCookieName + id, 'false', { expires: 7} );
        var str = labels[id] + '  ►';
        $( target ).next( 'div' ).animate({'height': '0px'});
        $( target ).html( str );
}
 
function maximize( target ) {
        var id = $( target ).parent().attr( 'id' );
        // You can change the expires parameter to save the cookie longer/shorter than 7 days like in this code
        $.cookie( expandCookieName + id, 'true', { expires: 7} );
        var str = labels[id] + '  ▼';
        var newHeight = maxHeights[id];
        $( target ).next( 'div' ).animate({'height': newHeight + 'px'});
        $( target ).html( str );
}
 
function toggleNav( e ) {
        var id = $(e.target ).parent().attr( 'id' );
        expandeds[id] = !expandeds[id];
        if( expandeds[id] == true ) {
                maximize( e.target );
        } else {
                minimize( e.target );
        }
}
 
///////////////////////////////////////////////////////
///////////////////////////////////////////////////////