|
|
| שורה 1: |
שורה 1: |
| if (mw.user.options.get('skin') == 'vector') | | if (mw.user.options.get('skin') == 'vector') |
| $(function() { | | $(function() { |
| setTimeout(function() {
| |
| function hebeng(str) { | | function hebeng(str) { |
| var | | var |
| שורה 15: |
שורה 14: |
|
| |
|
| $('#searchInput, #searchInput2, #powerSearchText, #searchText') | | $('#searchInput, #searchInput2, #powerSearchText, #searchText') |
| .suggestions({
| | .suggestions({ |
| fetch: function(query) {
| | fetch: function(query) { |
| var $this = $(this);
| | var $this = $(this); |
| 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 = {action: 'opensearch', search: query, limit: 10, suggest: ''}; |
| var request = $.ajax({
| | var request = $.ajax({ |
| data: params,
| | data: params, |
| success: function(data) {
| | success: function(data) { |
| if ($.isArray(data) && 1 in data) {
| | if ($.isArray(data) && 1 in data) { |
| var orig = data[1];
| | var 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])); |
| }
| | } |
| });
| | }); |
| }
| |
| } | | } |
| } | | } |
| }); | | } |
| $this.data('request', request);
| | }); |
| } | | $this.data('request', request); |
| },
| |
| cancel: function() {
| |
| var request = $(this).data('request'); | |
| // If the delay setting has caused the fetch to have not even happend yet, the request object will
| |
| // have never been set
| |
| if (request && $.isFunction(request.abort)) {
| |
| request.abort();
| |
| $(this).removeData('request');
| |
| }
| |
| },
| |
| result: {
| |
| select: function($input) {
| |
| $input.closest('form').submit();
| |
| }
| |
| },
| |
| delay: 120,
| |
| positionFromLeft: $('body').hasClass('rtl'),
| |
| highlightInput: true
| |
| })
| |
| .bind('paste cut drop', function(e) {
| |
| // make sure paste and cut events from the mouse and drag&drop events
| |
| // trigger the keypress handler and cause the suggestions to update
| |
| $(this).trigger('keypress');
| |
| });
| |
| // Special suggestions functionality for skin-provided search box
| |
| $('#searchInput').suggestions({
| |
| result: {
| |
| select: function($input) {
| |
| $input.closest('form').submit();
| |
| } | | } |
| }, | | } |
| special: {
| |
| render: function(query) {
| |
| if ($(this).children().length === 0) {
| |
| $(this).show();
| |
| var $label = $('<div></div>', {
| |
| 'class': 'special-label',
| |
| text: mw.msg('searchsuggest-containing')
| |
| })
| |
| .appendTo($(this));
| |
| var $query = $('<div></div>', {
| |
| 'class': 'special-query',
| |
| text: query
| |
| })
| |
| .appendTo($(this));
| |
| $query.autoEllipsis();
| |
| } else {
| |
| $(this).find('.special-query')
| |
| .empty()
| |
| .text(query)
| |
| .autoEllipsis();
| |
| }
| |
| },
| |
| select: function($input) {
| |
| $input.closest('form').append(
| |
| $('<input>', {
| |
| type: 'hidden',
| |
| name: 'fulltext',
| |
| val: '1'
| |
| })
| |
| );
| |
| $input.closest('form').submit();
| |
| }
| |
| },
| |
| $region: $('#simpleSearch')
| |
| }); | | }); |
| }, 777); // setTimeout.
| |
| }); // document.ready | | }); // document.ready |