MediaWiki:Gadget-wrcCollapsible.js

Wikimedia Polska, polski partner Fundacji Wikimedia.
Przejdź do nawigacji Przejdź do wyszukiwania

Uwaga: aby zobaczyć zmiany po opublikowaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.

  • Firefox / Safari: Przytrzymaj Shift podczas klikania Odśwież bieżącą stronę, lub naciśnij klawisze Ctrl+F5, lub Ctrl+R (⌘-R na komputerze Mac)
  • Google Chrome: Naciśnij Ctrl-Shift-R (⌘-Shift-R na komputerze Mac)
  • Internet Explorer / Edge: Przytrzymaj Ctrl, jednocześnie klikając Odśwież, lub naciśnij klawisze Ctrl+F5
  • Opera: Naciśnij klawisze Ctrl+F5.
/**
 * Collapse the sections on the Wikimedia Resource Center pages. This is done to
 * give an immediate, high-level view of each category.
 */
( function () {
	'use strict';
	
	mw.loader.using( [
		'oojs-ui',
		'oojs-ui.styles.icons-movement'
	] ).done( function () {
		if (
			mw.config.values.wgPageName == 'Wikimedia_Resource_Center/All' ||
			mw.config.values.wgPageName == 'Wikimedia_Resource_Center/For_program_coordinators' ||
			mw.config.values.wgPageName == 'Wikimedia_Resource_Center/For_contributors' ||
			mw.config.values.wgPageName == 'Wikimedia_Resource_Center/For_developers' ||
			mw.config.values.wgPageName == 'Wikimedia_Resource_Center/For_affiliate_organizers'
		) {
			// Collapsible sections, even on desktop
			$( '.mw-parser-output h2' ).each( function () {
				var $sectionHeader, doTheSwitch, toggleWidget;

				$sectionHeader = $( this );
				$sectionHeader
					.nextUntil( 'h2' )
					.wrapAll( '<div class="section-content" style="display:none;"></div>' );
				$sectionHeader.data( 'collapsed', 'true' );
				
				doTheSwitch = function () {
					if ( $sectionHeader.data( 'collapsed' ) == 'true' ) {
						$sectionHeader.next().css( 'display', 'block' );
						toggleWidget.setIcon( 'collapse' );
						$sectionHeader.data( 'collapsed', 'false' );
					} else {
						$sectionHeader.next().css( 'display', 'none' );
						toggleWidget.setIcon( 'expand' );
						$sectionHeader.data( 'collapsed', 'true' );						
					}	
				};

				toggleWidget = new OO.ui.ButtonWidget( {
					framed: false,
					icon: 'expand'
				} ).on( 'click', function() {
					doTheSwitch();
				} );
				toggleWidget.$element.css( 'font-size', '70%' );
				$sectionHeader.prepend( toggleWidget.$element );
				$( '.toc' ).css( 'display', 'none' );
				$sectionHeader.click( doTheSwitch );
			} );
			
		}
	} );
}() );