MediaWiki:Gadget-snippets.js

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 ułatwiający wklejanie do haseł dowolnie wybranych przez siebie tekstów.
 * Oryginalny kod: [[w:User:ToSter/snippets.js]] autorstwa [[w:User:ToSter]]
 * Autor przeróbki: [[User:Peter Bowman]]
 */

mw.libs.snippets = {
	$snippetsList: null,
	snippetsArray: [],
	snippetLength: 37,
	
	loadlist: function () {
		var that = this;
		var $wpTextbox1 = $( '#wpTextbox1' );
		
		this.$snippetsList = $( '<div>' )
			.attr( 'id', 'snippets-list' )
			.addClass( 'userSummaryButtons ' )
			.css( {
				display: 'none',
				padding: '0.2em 0'
			} )
			.append( 'Wybierz do wstawienia:<br>' )
			.insertBefore( $wpTextbox1 )
			.on( 'click', 'a', function () {
				$wpTextbox1.textSelection( 'encapsulateSelection', {
					pre: $( this ).data( 'snippet' )
				} );
			} );
		
		$.each( this.snippetsArray, function ( i, item ) {
			var sniptxt = item.replace( '\n', ' ' );
			
			sniptxt = ( sniptxt.length > that.snippetLength )
				? sniptxt.substr( 0, that.snippetLength ) + '...'
				: sniptxt;
			
			sniptxt = sniptxt.replace( ' ', '&nbsp;' );

			$( '<a>' )
				.text( sniptxt )
				.data( 'snippet', item )
				.appendTo( that.$snippetsList );
		} );
	}
};

$( function () {
	mw.libs.toolbarGadget.addButton( {
		title:   'Wstaw predefiniowany tekst',
		alt:     'Wstaw tekst',
		id:      'snippets_btn',
		oldIcon: '//upload.wikimedia.org/wikipedia/commons/7/74/Button_comment.png',
		newIcon: '//commons.wikimedia.org/w/thumb.php?f=2downarrow.png&w=22',
		onclick: function () {
			if ( !mw.libs.snippets.$snippetsList ) {
				mw.libs.snippets.loadlist();
			}
			
			mw.libs.snippets.$snippetsList.toggle( 'fast' );
		}
	} );
} );