MediaWiki:Gadget-AdvancedSearchHelper.js: differenze tra le versioni
moh c'è pure globale! meta:WMDE_Technical_Wishes/AdvancedSearch yuppie! meno lavoro per noi! asd; grazie a Superchilum per l'idea di non raddoppiare le funzionalità |
m una versione importata |
||
(Nessuna differenza)
|
Versione attuale delle 22:40, 30 ago 2020
/**
* Aggiunge altri campi a [[Speciale:Ricerca]]
*
* Creato da una geniale idea di [[Utente:Superchilum]]:
* [[Speciale:PermaLink/89685164#Accessorio per ricerca avanzata]]
* [[Discussioni utente:Valerio Bozzolan#Accessorio per ricerca avanzata]]
*
* Some features now are provided by the cute [[meta:WMDE_Technical_Wishes/AdvancedSearch]],
* so soon this gadget will become unuseful and should be disabled.
*
* @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 cfg = {
ACTIVATION_PAGE: 'Speciale:Ricerca'
};
if( ! mw || mw.config.get('wgPageName') !== cfg.ACTIVATION_PAGE ) {
return;
}
var L10N = {
prefix: 'Prefisso',
inTitle: 'Nel titolo',
inSource: 'Nel codice',
inCategory: 'Nella categoria',
linksTo: 'Nei collegamenti a',
exclude: 'Escludi',
moreLike: 'Parla simile',
hasTemplate: 'Include il template'
};
var $form = $('form#powersearch');
var $container = $('#mw-searchoptions');
if( ! $form.length ) {
$form = $('form#search')
$container = $form;
}
var $mainInputSearch = $form.find('input[name=search]');
var $formContainer = $('<div class="mw-inputbox-centered">');
var $inputText = $('<input type="text" class="searchboxInput mw-ui-input mw-ui-input-inline" />');
var $checkbox = $('<input type="checkbox" value="1" />');
var $label = $('<label>');
var $button = $('<input class="mw-ui-button" />');
var $p = $('<p>');
var searches = [];
function addSearchPart(field, value) {
searches.push( field + ':"' + value + '"' );
}
function addSearchField( field, label ) {
this.id = this.id || 1;
var $inputTextPrefix = $inputText.clone()
.attr('placeholder', label);
var $excludeCheckbox = $checkbox.clone()
.prop('id', id);
$container.append(
$formContainer.clone().append(
$p.clone()
.append( $inputTextPrefix )
.append( $excludeCheckbox )
.append( $label.clone()
.prop('for', id)
.html( L10N.exclude )
)
)
);
this.id++;
$form.submit( function () {
var v = $inputTextPrefix.val();
if( v ) {
if( $excludeCheckbox.is(':checked') ) {
field = '-' + field;
}
addSearchPart( field, v );
}
} );
}
addSearchField('prefix', L10N.prefix);
//addSearchField('intitle', L10N.inTitle);
addSearchField('insource', L10N.inSource);
//addSearchField('incategory', L10N.inCategory);
addSearchField('linksto', L10N.linksTo);
//addSearchField('hastemplate', L10N.hasTemplate);
//addSearchField('morelike', L10N.moreLike);
$form.submit( function () {
var val = $mainInputSearch.val();
if( val !== '' ) {
searches.unshift(val);
}
$mainInputSearch.val( searches.join(' ') );
searches = [];
} );
} )( mediaWiki, jQuery );