Wikisłownikarz:Nostrix/customizeToolbar.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.
( function( mw, $ ) {
	var $wpTextbox1 = null;
	var gui = { sites: {} };
	var rgx = new RegExp( '^' + mw.config.get( 'wgPageName' ) + '$', 'i' );
 
	mw.messages.set( {
		'customize-toolbar-results': 'Znaleziono $1 {{PLURAL:$1|wynik|wyniki|wyników}}:'
	} );
 
	function insertTemplate( value ) {
		var tmpl = null;
 
		switch ( gui.site ) {
			case 'wikipedia': tmpl = 'wikipedia';  break;
			case 'wikiquote': tmpl = 'wikicytaty'; break;
			case 'wikisource':
				tmpl = 'Gloger';
				value = value.substring( value.indexOf( '/' ) + 1 );
				break;
			default: return;
		}
 
		var title = rgx.test( value )
			? null
			: value.toLowerCase();
 
		$wpTextbox1.textSelection( 'encapsulateSelection', {
			pre: '{{' +
				tmpl +
				( title ? '|' + title : '' ) +
				'}}'
		} );
	}
 
	function onDialogInsertTmplClick( value ) {
		return function( evt ) {
			evt.preventDefault();
			insertTemplate( value );
		};
	}
 
	function printHtmlResults( obj ) {
		var $table = obj.$table = $( '<table>' )
			.css( 'width', '100%' );
 
		$.each( obj.results, function( i, value ) {
			$table.append( $( '<tr>' )
				.append( [
					$( '<td>' ).append( $( '<a>' )
						.attr( 'href', '//pl.wikipedia.org/wiki/' + value )
						.text( value )
					),
					$( '<td>' ).append( $( '<a>' )
						.text( 'wstaw' )
						.css( 'cursor', 'pointer' )
						.on( 'click', onDialogInsertTmplClick( value ) )
					)
				] )
			);
		} );
 
		return $table;
	}
 
	function callApiCors( obj ) {
		$.ajax( {
			url: 'https://pl.' + obj.domain + '.org/w/api.php',
			dataType: 'json',
			data: {
				action:    'opensearch',
				format:    'json',
				origin:    'https://pl.wiktionary.org',
				namespace: 0,
				limit:     'max',
				search:    obj.searchTerm
			},
			xhrFields: {
				withCredentials: true
			},
			success: function( data ) {
				var res = obj.results = data[ '1' ];
 
				if ( res && res.length > 0 ) {
					gui.$dialog
						.find( '#dialog-msg' ).text( mw.msg( 'customize-toolbar-results', res.length ) )
						.end()
						.find( '#dialog-results' ).html( printHtmlResults( obj ) );
				} else {
					gui.$dialog
						.find( '#dialog-msg' ).text( 'Brak wyników.' )
						.end()
						.find( '#dialog-results' ).empty();
				}
			},
			error: function( data ) {
				gui.$dialog
					.find( '#dialog-msg' ).text( 'Błąd.' )
					.end()
					.find( '#dialog-results' ).empty();
			}
		} );
	}
 
	function createDialogBox( site ) {
		var obj = gui.sites[ site ] = gui.sites[ site ] || { domain: site };
 
		if ( gui.$dialog ) {
			gui.$dialog
				.dialog( 'option', 'title', 'Wyniki wyszukiwania (' + site + ')' )
				.children().empty();
		} else {
			gui.$dialog = $( '<div>' )
				.attr( 'id', 'dialog-box' )
				.append( [
					$( '<span>' ).attr( 'id', 'dialog-msg' ),
					$( '<hr>' ),
					$( '<div>' ).attr( 'id', 'dialog-results' )
				] )
				.dialog( {
					title:    'Wyniki wyszukiwania (' + site + ')',
					close:    function( event, ui ) {
						gui.$dialog.children().empty();
					}
				} );
		}
 
		gui.$dialog
			.find( '#dialog-msg' ).text( 'Poczekaj, wyszukiwanie trwa...' )
			.end()
			.find( '#dialog-results' ).html(
				'<div style="text-align:center;margin:2em;">' +
				'<img src="https://upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif">' +
				'</div>'
			)
			.end()
			.dialog( 'open' );
 
		if ( obj.results ) {
			gui.$dialog
				.find( '#dialog-msg' )
				.text( ( obj.results.length === 0 )
					? 'Brak wyników.'
					: mw.msg( 'customize-toolbar-results', obj.results.length )
				)
				.end()
				.find( '#dialog-results' )
				.html( obj.$table || '' );
		} else {
			obj.searchTerm = ( ( site == 'wikisource')
				? 'Encyklopedia staropolska/'
				: '' ) + mw.config.get( 'wgPageName' );
 
			callApiCors( obj );
		}
	}
 
	var customizeToolbar = function() {
		var title = mw.config.get( 'wgTitle' );
		
		// Sekcja 'kataloński'
		$wpTextbox1.wikiEditor( 'addToToolbar', {
			section: 'addword',
			groups: {
				es: {
					label: 'Kataloński',
					tools: {
						rzeczownik: {
							label: 'Nowe hasło (rzeczownik, język kataloński)',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-R.png/22px-Newfont-R.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: "== " + title + " ({{język kataloński}}) ==\n{{wymowa}}\n: {{IPA3|WSTAW}}\n{{znaczenia}}\n''rzeczownik, rodzaj WSTAWi''\n: (1.1) ",
									peri: "WSTAW",
									post: "\n{{odmiana}}\n: (1.1) {{lp}} WSTAW {{lm}} WSTAW\n{{przykłady}}\n{{składnia}}\n{{kolokacje}}\n{{synonimy}}\n{{antonimy}}\n{{hiperonimy}}\n{{hiponimy}}\n{{holonimy}}\n{{meronimy}}\n{{pokrewne}}\n{{frazeologia}}\n{{etymologia}}\n{{uwagi}}\n{{źródła}}\n<references />"
								}
							}
						},
						przymiotnik: {
							label: 'Nowe hasło (przymiotnik, język kataloński)',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-P.png/22px-Newfont-P.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: "== " + title + " ({{język kataloński}}) ==\n{{wymowa}}\n: {{IPA3|WSTAW}}\n{{znaczenia}}\n''przymiotnik''\n: (1.1) ",
									peri: "WSTAW",
									post: "\n{{odmiana}}\n: (1.1) {{lp}} WSTAW {{m}}, WSTAW {{ż}}; {{lm}} WSTAW {{m}}, WSTAW {{ż}}\n{{przykłady}}\n{{składnia}}\n{{kolokacje}}\n{{synonimy}}\n{{antonimy}}\n{{hiperonimy}}\n{{hiponimy}}\n{{holonimy}}\n{{meronimy}}\n{{pokrewne}}\n{{frazeologia}}\n{{etymologia}}\n{{uwagi}}\n{{źródła}}\n<references />"
								}
							}
						},
						'przysłówek': {
							label: 'Nowe hasło (przysłówek, język kataloński)',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-P.png/22px-Newfont-P.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: "== " + title + " ({{język kataloński}}) ==\n{{wymowa}}\n: {{IPA3|WSTAW}}\n{{znaczenia}}\n''przysłówek''\n: (1.1) ",
									peri: "[[]]",
									post: "\n{{odmiana}}\n: (1.1) {{nieodm}}\n{{przykłady}}\n{{składnia}}\n{{kolokacje}}\n{{synonimy}}\n{{antonimy}}\n{{hiperonimy}}\n{{hiponimy}}\n{{holonimy}}\n{{meronimy}}\n{{pokrewne}}\n{{frazeologia}}\n{{etymologia}}\n{{uwagi}}\n{{źródła}}\n<references />"
								}
							}
						},
						czasownik: {
							label: 'Nowe hasło (czasownik, język kataloński)',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-C.png/22px-Newfont-C.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: "== " + title + " ({{język kataloński}}) ==\n{{wymowa}}\n: {{IPA3|WSTAW}}\n{{znaczenia}}\n''czasownik''\n: (1.1) ",
									peri: "WSTAW",
									post: "\n{{odmiana}}\n: (1.1)\n{{przykłady}}\n{{składnia}}\n{{kolokacje}}\n{{synonimy}}\n{{antonimy}}\n{{hiperonimy}}\n{{hiponimy}}\n{{holonimy}}\n{{meronimy}}\n{{pokrewne}}\n{{frazeologia}}\n{{etymologia}}\n{{uwagi}}\n{{źródła}}\n<references />"
								}
							}
						},
						'tuvalu rzeczownik': {
							label: 'Nowe hasło (rzeczownik, język tuvalu)',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-C.png/22px-Newfont-C.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: "== " + title + " ({{język tuvalu}}) ==\n{{wymowa}}\n{{znaczenia}}\n''rzeczownik''\n: (1.1) ",
									peri: "WSTAW",
									post: "<ref name=j>{{Jackson2001|strony=}}</ref>\n{{odmiana}}\n{{przykłady}}\n{{składnia}}\n{{kolokacje}}\n{{synonimy}}\n{{antonimy}}\n{{hiperonimy}}\n{{hiponimy}}\n{{holonimy}}\n{{meronimy}}\n{{pokrewne}}\n{{frazeologia}}\n{{etymologia}}\n{{uwagi}}\n{{źródła}}\n<references />"
								}
							}
						},
						'grenlandzki rzeczownik': {
							label: 'Nowe hasło (rzeczownik, język grenlandzki)',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-C.png/22px-Newfont-C.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: "== " + title + " ({{język grenlandzki}}) ==\n{{wymowa}}\n: {{IPA|WSTAW}}\n{{znaczenia}}\n''rzeczownik''\n: (1.1) ",
									peri: "WSTAW",
									post: "<ref>{{Oqaasileriffik|id=WSTAW}}</ref>\n{{odmiana}}\n: (1.1) {{lp}} WSTAW; {{lm}} WSTAW\n{{przykłady}}\n{{składnia}}\n{{kolokacje}}\n{{synonimy}}\n{{antonimy}}\n{{hiperonimy}}\n{{hiponimy}}\n{{holonimy}}\n{{meronimy}}\n{{pokrewne}}\n{{frazeologia}}\n{{etymologia}}\n{{uwagi}}\n{{źródła}}\n<references />"
								}
							}
					}
				}
			}
		 }
	} );
 
		// Sekcja 'Skróty'
		$wpTextbox1.wikiEditor( 'addToToolbar', {
			sections: {
				skroty: {
					type: 'booklet',
					label: 'Skróty'
				}
			}
		} );
 
		$wpTextbox1.wikiEditor( 'addToToolbar', {
			section: 'skroty',
			pages: {
				polskie: {
					layout: 'characters',
					label: 'Polskie znaki',
					characters: [ 'ą', 'ć', 'ę', 'ł', 'ń', 'ś', 'ź', 'ż', 'Ą', 'Ć', 'Ę', 'Ł', 'Ń', 'Ś', 'Ź', 'Ż' ]
				},
				IPA: {
					layout: 'characters',
						label: 'Znaki IPA',
						characters: [ 'θ', 'β', 'ð', 'ɣ', 'ǰ', 'ʎ', 'l̦', 'l̥', 'ᶅ', 'ɱ', 'n̩', 'n̥', 'ɲ', 'ŋ', 'r̄', 'ș', 'ʧ̑', 'u̯', 'i̯', 'ã', 'ẽ', 'ĩ', 'õ', 'ũ', 'ˈ' ]
					},
				inne: {
					layout: 'characters',
						label: 'Inne znaki',
						characters: [ '–', '—', '„”', '~', '~~'+'~~' ]
				},
				szablony: {
					layout: 'characters',
						label: 'Szablony',
						characters: [ '{'+'{wikipedia}}', '{'+'{wikicytaty}}', '{'+'{zobtłum}}', '{'+'{etym2|łac||}}', '{'+'{transkrypcja etymologii}}', '<references />' ]
					}
				}
			} );
 
		// Sekcja 'szablony'
		$wpTextbox1.wikiEditor( 'addToToolbar', {
			sections: {
				szablony: {
					type: 'toolbar',
					label: '{{}}'
				}
			}
		} );
 
		$wpTextbox1.wikiEditor( 'addToToolbar', {
			section: 'szablony',
			groups: {
				pl: {
					label: 'Polskie',
					tools: {
						przymiotnik: {
							label: 'Przymiotnik',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-P.png/22px-Newfont-P.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: ": () {{odmiana-przymiotnik-polski|",
									peri: "brak",
									post: "}}"
								}
							}
						},
						'rzeczownik-odm': {
							label: 'Rzeczownik odmienny',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-R.png/22px-Newfont-R.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: ": () {{odmiana-rzeczownik-polski\n|Mianownik lp    = \n|Dopełniacz lp   = \n|Celownik lp     = \n|Biernik lp      = \n|Narzędnik lp    = \n|Miejscownik lp  = \n|Wołacz lp       = \n|Mianownik lm    = \n|Dopełniacz lm   = \n|Celownik lm     = \n|Biernik lm      = \n|Narzędnik lm    = \n|Miejscownik lm  = \n|Wołacz lm       = \n}}"
								}
							}
						},
						'rzeczownik-nieodm': {
							label: 'Rzeczownik nieodmienny',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-R.png/22px-Newfont-R.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: ": () {{nieodm-rzeczownik-polski|<ref>{{WSOonline|hasło=}}</ref>|blm}}"
								}
							}
						},
						'czasownik-ndok': {
							label: 'Czasownik niedokonany',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-C.png/22px-Newfont-C.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: ": () {{odmiana-czasownik-polski\n| dokonany=   nie\n| się=        się\n| koniugacja= \n| robić=      \n| robię=      \n| robi=       \n| robią=      \n| robiłem=    \n| robił=      \n| robiła=     \n| robili=     \n| robiono=    \n| rób=        \n| robiąc=     \n| robiony=    \n| robieni=    \n| robienie=   \n}}"
								}
							}
						},
						'czasownik-dok': {
							label: 'Czasownik dokonany',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-C.png/22px-Newfont-C.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: ": () {{odmiana-czasownik-polski\n| dokonany=   tak\n| się=        się\n| koniugacja= \n| zrobić=     \n| zrobię=     \n| zrobi=      \n| zrobią=     \n| zrobiłem=   \n| zrobił=     \n| zrobiła=    \n| zrobili=    \n| zrobiono=   \n| zrób=       \n| zrobiwszy=  \n| zrobiony=   \n| zrobieni=   \n| zrobienie=  \n}}"
								}
							}
						}
					}
				},
				es: {
					label: 'Katalońskie',
					tools: {
						'odmiana czasownika': {
							label: 'Odmiana czasownika',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-C.png/22px-Newfont-C.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: ": (1.1)"
								}
							}
						},
						'forma czasownikowa': {
							label: 'Forma czasownikowa',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Newfont-C.png/22px-Newfont-C.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: "''{{forma czasownika|es}}''\n: () {{forma verbal|czasownik=|osoba=|liczba=|czas=|tryb=}}"
								}
							}
						}
					}
				},
				inne: {
					label: 'Inne',
					tools: {
						pliki: {
							label: 'Ilustracje',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/c/c7/Nuvola_commons_icon.svg/22px-Nuvola_commons_icon.svg.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: "[[Plik:",
									peri: "título",
									post: "|thumb|" + title + " ()]]"
								}
							}
						},
						seseo: {
							label: 'Seseo',
							type: 'button',
							icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/72/VisualEditor_-_Icon_-_Strikethrough-s.svg/22px-VisualEditor_-_Icon_-_Strikethrough-s.svg.png',
							action: {
								type: 'encapsulate',
								options: {
									pre: "(''dialekty z utożsamieniem s-z'')"
								}
							}
						},
						wikipedia: {
							label: 'Wikipedia',
							type:  'button',
							icon:  '//upload.wikimedia.org/wikipedia/commons/thumb/6/63/Wikipedia-logo.png/22px-Wikipedia-logo.png',
							action: {
								type:    'callback',
								execute: function() {
									mw.loader.using( [
										'jquery.ui',
										'jquery.textSelection'
									], function() {
										createDialogBox( 'wikipedia' );
									} );
								}
							}
						},
						wikiquote: {
							label: 'Wikicytaty',
							type:  'button',
							icon:  '//upload.wikimedia.org/wikipedia/commons/thumb/3/32/Wikiquote-logo.png/22px-Wikiquote-logo.png',
							action: {
								type:    'callback',
								execute: function() {
									mw.loader.using( [
										'jquery.ui',
										'jquery.textSelection'
									], function() {
										createDialogBox( 'wikiquote' );
									} );
								}
							}
						},
						wikisource: {
							label: 'Gloger',
							type:  'button',
							icon:  '//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/22px-Wikisource-logo.svg.png',
							action: {
								type:    'callback',
								execute: function() {
									mw.loader.using( [
										'jquery.ui',
										'jquery.textSelection'
									], function() {
										createDialogBox( 'wikisource' );
									} );
								}
							}
						}
					}
				} /*koniec grupy*/
			}
		} );
	};
 
	if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
		mw.loader.using( 'user.options', function () {
			if ( mw.user.options.get( 'usebetatoolbar' ) ) {
				mw.hook( 'toolbarGadget.addWordReady' ).add( function( $textbox ) {
					$wpTextbox1 = $textbox;
					customizeToolbar();
				} );
			}
		} );
	}
} ) ( mediaWiki, jQuery );