MediaWiki:Gadget-autocollapse.js

This is an old revision of this page, as edited by Alex (talk | contribs) at 00:35, 13 October 2024 (Created page with "→‎* * Automatically collapsed navboxes under certain conditions: (function($, mw){ if ($( ".mw-collapsible-toggle" ).length) expandMaps(); if ( !$('.navbox-autocollapse').length || mw.Uri().query.veaction != undefined ) return; mw.hook('wikipage.collapsibleContent').add(init); function init() { var $navboxes = $('.navbox'), // maximum number of navboxes before they all stay collapsed maxShow = 1, // maximum allowable height of navbox before it s..."). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

After saving, you may need to bypass your browser's cache to see the changes. For further information, see Wikipedia:Bypass your cache.

  • In most Windows and Linux browsers: Hold down Ctrl and press F5.
  • In Safari: Hold down ⇧ Shift and click the Reload button.
  • In Chrome and Firefox for Mac: Hold down both ⌘ Cmd+⇧ Shift and press R.
/**
 * Automatically collapsed navboxes under certain conditions
 */
(function($, mw){
	if ($( ".mw-collapsible-toggle" ).length) expandMaps();
	if (
		!$('.navbox-autocollapse').length ||
		mw.Uri().query.veaction != undefined
	) return;
	mw.hook('wikipage.collapsibleContent').add(init);
	
	function init() {
		var $navboxes = $('.navbox'),
			// maximum number of navboxes before they all stay collapsed
			maxShow = 1,
			// maximum allowable height of navbox before it stays collapsed
			maxHeight = 300;

		if ($navboxes.length > maxShow) {
			return;
		}
		
		$navboxes.each(function(i,box){
			var $box = $(box);
			if (!$box.hasClass('navbox-autocollapse')) return;
			$box.data('mw-collapsible').expand();
			if ( $box.height() > maxHeight ) $box.data('mw-collapsible').collapse();
		});
	}
	
	// handle collapsible maps
	function expandMaps() {
		$( ".mw-collapsible-toggle" ).on( "click keypress", function() {
		    const $this = $( this );
		    
		    if( $this.hasClass( "mw-collapsible-toggle-expanded" ) ) {
		        mw.hook( "wikipage.content" ).fire(
		            $( "a.mw-kartographer-map", $this.parents( ".mw-collapsible" ).first() ).parent()
		        );
		    }
		} );
	}
	//$(init);
	
})(jQuery, mediaWiki);