לדלג לתוכן

מדיה ויקי:Gadget-Dwim.js: הבדלים בין גרסאות בדף

מתוך צפונות ויקי
אופס
סדר וניקיון באדיבות JSHint
שורה 1: שורה 1:
if (mw.user.options.get('skin') == 'vector')
if (mw.user.options.get('skin') === 'vector') {
 
$(function() {
$(function() {
'use strict';
var $searchBoxes = $('#searchInput, #searchInput2, #powerSearchText, #searchText');
var $searchBoxes = $('#searchInput, #searchInput2, #powerSearchText, #searchText');
// A patch until suggestions are unbroken
// A patch until suggestions are unbroken
if ( !jQuery.isFunction( $searchBoxes.suggestions ) ) {
if ( !jQuery.isFunction( $searchBoxes.suggestions ) ) {
שורה 8: שורה 12:


function hebeng(str) {
function hebeng(str) {
var
var i, ic,
res = '',
res = '',
hes = "qwertyuiopasdfghjkl;zxcvbnm,./'קראטוןםפשדגכעיחלךףזסבהנמצתץ";
hes = "qwertyuiopasdfghjkl;zxcvbnm,./'קראטוןםפשדגכעיחלךףזסבהנמצתץ";
str = str.toLowerCase();
str = str.toLowerCase();
for (var i = 0; i < str.length; i++) {
 
var ic = hes.indexOf(str.charAt(i));
for (i = 0; i < str.length; i++) {
ic = hes.indexOf(str.charAt(i));
res += ic + 1 ? hes.charAt((ic + 29) % 58) : str.charAt(i);
res += ic + 1 ? hes.charAt((ic + 29) % 58) : str.charAt(i);
}
}
return res;
return res;
}
}
שורה 24: שורה 31:
if (query.length !== 0) {
if (query.length !== 0) {
$.ajaxSetup({url: mw.util.wikiScript('api'), dataType: 'json'});
$.ajaxSetup({url: mw.util.wikiScript('api'), dataType: 'json'});
var params = {action: 'opensearch', search: query, limit: 10, suggest: ''};
var params = {
var request = $.ajax({
action: 'opensearch',
search: query,
limit: 10,
suggest: ''
},
request = $.ajax({
data: params,
data: params,
success: function(data) {
success: function(data) {
var orig;
if ($.isArray(data) && 1 in data) {
if ($.isArray(data) && 1 in data) {
var orig = data[1];
orig = data[1];
$this.suggestions('suggestions', orig);
$this.suggestions('suggestions', orig);
if (data[1].length < 10) {
if (data[1].length < 10) {
params.search = hebeng(query);
params.search = hebeng(query);
if (params.search == query)
if (params.search === query) {
return;
return;
params,limit = 10 - data[1].length;
}
params.limit = 10 - data[1].length;
$.ajax({
$.ajax({
data: params,
data: params,
success: function(data) {
success: function(data) {
if ($.isArray(data) && 1 in data)
if ($.isArray(data) && 1 in data) {
$this.suggestions('suggestions', orig.concat(data[1]));
$this.suggestions('suggestions', orig.concat(data[1]));
}
}
}
});
});
שורה 52: שורה 68:
});
});
}); // document.ready
}); // document.ready
}

גרסה מ־18:49, 27 באפריל 2013

if (mw.user.options.get('skin') === 'vector') {

$(function() {
	'use strict';

	var $searchBoxes = $('#searchInput, #searchInput2, #powerSearchText, #searchText');

	// A patch until suggestions are unbroken
	if ( !jQuery.isFunction( $searchBoxes.suggestions ) ) {
		return;
	}

	function hebeng(str) {
		var i, ic,
			res = '',
			hes = "qwertyuiopasdfghjkl;zxcvbnm,./'קראטוןםפשדגכעיחלךףזסבהנמצתץ";

		str = str.toLowerCase();

		for (i = 0; i < str.length; i++) {
			ic = hes.indexOf(str.charAt(i));
			res += ic + 1 ? hes.charAt((ic + 29) % 58) : str.charAt(i);
		}

		return res;
	}

	$searchBoxes.suggestions({
		fetch: function(query) {
			var $this = $(this);
			if (query.length !== 0) {
				$.ajaxSetup({url: mw.util.wikiScript('api'), dataType: 'json'});
				var params = {
						action: 'opensearch',
						search: query,
						limit: 10,
						suggest: ''
					},
					request = $.ajax({
					data: params,
					success: function(data) {
						var orig;

						if ($.isArray(data) && 1 in data) {
							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,
									success: function(data) {
										if ($.isArray(data) && 1 in data) {
											$this.suggestions('suggestions', orig.concat(data[1]));
										}
									}
								});
							}
						}
					}
				});
				$this.data('request', request);
			}
		}
	});
}); // document.ready

}