MediaWiki:Gadget-autocollapse.js

From WIDEVERSE Wiki
Jump to navigation Jump to search

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.
/**
 * Automatically collapsed navboxes under certain conditions
 */
(function($, mw){
	if ($( ".mw-collapsible-toggle" ).length) expandMaps();
	if (
		!$('.navbox').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 get collapsed
			maxShow = 1,
			// maximum allowable height of navbox before it gets collapsed
			maxHeight = 300;
		
		function collapseNavbox(i,box) {
			var $box = $(box);
			if ($box.hasClass('navbox-uncollapsed')) return;
			$box.data('mw-collapsible').collapse();
		}
		
		if ($navboxes.length > maxShow) {
			$navboxes.each(collapseNavbox);
		}
		
		$navboxes.each(function(i,e){
			if ($(e).height() > maxHeight) {
				collapseNavbox(i,e);
			}
		});
	}
	
	// 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);