לדלג לתוכן

מדיה ויקי:Gadget-Dwim.js

מתוך צפונות ויקי
גרסה מ־18:52, 27 באפריל 2013 מאת wikipedia:he>Amire80 (עוד קצת סדר וניקיון)

הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
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) {
				var params = {
						action: 'opensearch',
						search: query,
						limit: 10,
						suggest: ''
					};

				$.ajaxSetup({url: mw.util.wikiScript('api'), dataType: 'json'});

				$this.data('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]));
										}
									}
								});
							}
						}
					}
				}));
			}
		}
	});
}); // document.ready

}