MediaWiki:Gadget-specialchars-dropdown.js

Z Wikisłownika – wolnego słownika wielojęzycznego

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.
/* Skrypt odpowiedzialny za znaki specjalne [[MediaWiki:Edittools]] */

var storageKey = 'ext.gadget.specialchars-dropdown.selection';

$( function() {
	var specialchars = document.getElementById( 'editpage-specialchars' );
	
	if ( !specialchars ) {
		return;
	}

	var select = document.createElement( 'select' );
	select.style.display = 'inline';
	
	select.onchange = function () {
		chooseCharSubset( this.selectedIndex );
	};

	var groups = specialchars.getElementsByTagName( 'p' );
	
	for ( var i = 0; i < groups.length; i++ ) {
		var option = document.createElement( 'option' );
		var title = groups[i].title;
		option.appendChild( document.createTextNode( title ) );
		select.appendChild( option );
	}

	specialchars.insertBefore( select, specialchars.firstChild );

	/* default subset from cookie */
	var selectedCharSubset = parseInt( mw.storage.get( storageKey ) );
	
	if ( isNaN( selectedCharSubset ) ) {
		selectedCharSubset = 0;
	}

	/* update dropdown control to value of cookie */
	select.selectedIndex = selectedCharSubset;

	/* display the subset indicated by the cookie */
	chooseCharSubset( selectedCharSubset );
} );

/* select subsection of special characters */
function chooseCharSubset( s ) {
	var l = $( '#editpage-specialchars' ).find( 'p' );
	
	for ( var i = 0; i < l.length; i++ ) {
		l[i].style.display = i === s ? 'inline' : 'none';
		l[i].style.visibility = i === s ? 'visible' : 'hidden';
	}
	
	mw.storage.set( storageKey, s );
}