MediaWiki:Common.js
From Freegle Wiki
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)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */
/** Collapsible tables *********************************************************
*
* Description: Modern collapsible tables using MediaWiki's built-in functionality
* Updated for MediaWiki 1.43+ compatibility
*
* Note: MediaWiki 1.43 provides native collapsible table support via the
* "mw-collapsible" class. The old custom implementation has been removed
* as it relied on deprecated functions (hasClass, addHandler, killEvt).
*
* To use collapsible tables, simply add the "mw-collapsible" class to your table:
* {| class="wikitable mw-collapsible"
*
* For tables that start collapsed, add "mw-collapsed":
* {| class="wikitable mw-collapsible mw-collapsed"
*/
// Initialize collapsible elements on page load
// MediaWiki's jquery.makeCollapsible module handles this automatically
// for elements with the mw-collapsible class
mw.hook( 'wikipage.content' ).add( function( $content ) {
// Backwards compatibility: convert old "collapsible" class to "mw-collapsible"
$content.find( 'table.collapsible' ).each( function() {
var $table = $( this );
// Add the modern class
$table.addClass( 'mw-collapsible' );
// If it had the old "collapsed" class, use the modern equivalent
if ( $table.hasClass( 'collapsed' ) ) {
$table.addClass( 'mw-collapsed' );
}
// Handle autocollapse
if ( $table.hasClass( 'autocollapse' ) ) {
// Count how many collapsible tables exist
var collapsibleCount = $content.find( 'table.mw-collapsible' ).length;
if ( collapsibleCount >= 2 ) {
$table.addClass( 'mw-collapsed' );
}
}
} );
} );