MediaWiki:Common.js

From VNDev Wiki
Revision as of 23:32, 23 June 2022 by Arsym (talk | contribs) (autocollapse support)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

/**
 * Add support to mw-collapsible for autocollapse, innercollapse and outercollapse
 *
 * Maintainers: TheDJ
 */
function mwCollapsibleSetup( $collapsibleContent ) {
    var $element,
        $toggle,
        autoCollapseThreshold = 2;
    $.each( $collapsibleContent, function ( index, element ) {
        $element = $( element );
        if ( $element.hasClass( 'collapsible' ) ) {
            $element.find( 'tr:first > th:first' ).prepend( $element.find( 'tr:first > * > .mw-collapsible-toggle' ) );
        }
        if ( $collapsibleContent.length >= autoCollapseThreshold && $element.hasClass( 'autocollapse' ) ) {
            $element.data( 'mw-collapsible' ).collapse();
        } else if ( $element.hasClass( 'innercollapse' ) ) {
            if ( $element.parents( '.outercollapse' ).length > 0 ) {
                $element.data( 'mw-collapsible' ).collapse();
            }
        }
        // because of colored backgrounds, style the link in the text color
        // to ensure accessible contrast
        $toggle = $element.find( '.mw-collapsible-toggle' );
        if ( $toggle.length ) {
            // Make the toggle inherit text color
            if ( $toggle.parent()[ 0 ].style.color ) {
                $toggle.find( 'a' ).css( 'color', 'inherit' );
            }
        }
    } );
}

mw.hook( 'wikipage.collapsibleContent' ).add( mwCollapsibleSetup );