MediaWiki:Gadget-AdvancedSearchHelper.js

Versione del 31 lug 2017 alle 22:26 di Valerio Bozzolan (discussione | contributi) (two girls one form)

Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.


Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.

/**
 * Inserisce nella pagina alcuni campi di ricerca avanzata.
 *
 * Oltre al '#advanced-search-helper-container', nella pagina deve essere inserito almeno un "inputbox".
 *
 * @author [[Utente:Valerio Bozzolan]]
 * @license [[GNU AGPL]] or [[GNU GPL v3+]] or [[GNU FDL]] or [[CC BY-SA 4.0]] at your opinion
 */
( function ( mw, $ ) {

	var L10N = {
		search: 'Cerca',
		prefix: 'Prefisso',
		inTitle: 'Parte del titolo',
		inSource: 'Nel codice'
	};

	var $container = $('#advanced-search-helper-container').empty();
	var $formContainer = $('<div class="mw-inputbox-centered">');
	var $inputText = $('<input type="text" class="searchboxInput mw-ui-input mw-ui-input-inline" />');
	var $button = $('<input class="mw-ui-button" />');
	var $form = $('<form>');
	var $p = $('<p>');

	var searches = [];

	function addSearchPart(field, value) {
		searches.push( field + ':"' + value + '"' );
	}

	function addSearchField( field, label ) {
		var $inputTextPrefix = $inputText.clone()
			.attr('placeholder', label);

		$form.append(
			$formContainer.clone().append(
				$p.clone()
					.append( $inputTextPrefix )
			)
		)
		.submit( function () {
			var v = $inputTextPrefix.val();
			v && addSearchPart( field, v );
		} );
	}

	var $mainInputSearch = $inputText.clone()
		.prop('size', 50)
		.prop('name', 'search')
		.prop('placeholder', L10N.search);

	$form.append(
		$formContainer.clone().append(
			$p.clone().append( $mainInputSearch )
		)
	);

	addSearchField('prefix',   L10N.prefix);
	addSearchField('intitle',  L10N.inTitle);
	addSearchField('insource', L10N.inSource);

	$form.append(
		$formContainer.clone().append(
			$p.clone().append(
				$button.clone()
					.prop('type', 'submit')
					.attr('value', L10N.search )
			)
		)
	)

	$form.submit( function () {
		$mainInputSearch.val( searches.join(' ') );
		searches = [];
	} );

	$container.append( $form );

} )( mediaWiki, jQuery );