Користувач:Shmurak/search.js
Перейти до навігації
Перейти до пошуку
Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.
- Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
- Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
- Internet Explorer / Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5
- Opera: натисніть Ctrl-F5
/* Скрипт для виведення додаткових підказок в «малому» поле пошуку
* при використанні невірної розкладки.
* Оригінал: //he.wikipedia.org/wiki/MediaWiki:Gadget-Dwim.js
* Локалізован by Shmurak
*/
mw.loader.using( [ 'mediawiki.searchSuggest', 'mediawiki.util' ] ).done( function() {
'use strict';
$( function() {
var hes = "qwertyuiop[]asdfghjkl;'zxcvbnm,./`QWERTYUIOP{}ASDFGHJKL:\"ZXCVBNM<>?~#^йцукенгшщзхїфівапролджєячсмитьбю.ёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЄЇІҐ,Ё№:",
hebeng = function ( str ) {
return ( str || '' ).replace( /./g, function( c ) {
var ic = hes.indexOf( c );
return ic + 1 ? hes.charAt( ( ic + 70 ) % 140 ) : c;
} );
};
var $searchBoxes = $(
'#searchInput, #searchInput2, #powerSearchText, #searchText'
);
$searchBoxes.suggestions( {
fetch: function( query ) {
var $this = $( this ),
apiUrl = mw.util.wikiScript( 'api' );
if ( query.length !== 0 ) {
var params = {
action: 'opensearch',
search: query,
redirects: 'return',
suggest: true
};
$.ajax( {
data: params,
url: apiUrl,
dataType: 'json',
success: function( data ) {
if ( $.isArray( data ) && 1 in data ) {
var orig = data[1];
$this.suggestions( 'suggestions', orig );
if ( data[1].length < 10 ) {
params.search = hebeng( query );
if ( params.search === query ) {
return;
}
params.limit = 10 - data[1].length;
$.ajax( {
data: params,
url: apiUrl,
dataType: 'json',
success: function( data ) {
if ( $.isArray( data ) && 1 in data ) {
$this.suggestions(
'suggestions',
orig.concat( data[1] )
);
}
}
} );
}
}
}
} );
}
}
} );
} ); // document.ready
} ); // mw.loader.using