לדלג לתוכן

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

מתוך צפונות ויקי
אח, דומפקוף
כבר אין דבר כזה. נקווה ש-searchSuggest מספיק.
שורה 16: שורה 16:
if ( mw.user.options.get( 'cirrussearch-completionsuggester' ) === "1" ) {
if ( mw.user.options.get( 'cirrussearch-completionsuggester' ) === "1" ) {
mw.loader.using( [ 'mediawiki.searchSuggest', 'ext.cirrus' ], function() {
mw.loader.using( [ 'mediawiki.searchSuggest' ], function() {
// Override default opensearch
// Override default opensearch
mw.searchSuggest.type = 'cirrus-suggest';
mw.searchSuggest.type = 'cirrus-suggest';

גרסה מ־16:54, 6 במרץ 2016

if ( mw.user.options.get( 'skin' ) === 'vector' ) {
$(function() {
setTimeout( function() {
    'use strict';


	var hes = "qwertyuiopasdfghjkl;zxcvbnm,./'קראטוןםפשדגכעיחלךףזסבהנמצתץ",
		hebeng = function ( str ) {
			var hes = "qwertyuiopasdfghjkl;zxcvbnm,./'קראטוןםפשדגכעיחלךףזסבהנמצתץ";
	
			return ( str || '' ).replace( /./g, function( c ) {
				var ic = hes.indexOf( c.toLowerCase() );
				return ic + 1 ? hes.charAt( ( ic + 29 ) % 58 ) : c;
			} );
		};
	
if ( mw.user.options.get( 'cirrussearch-completionsuggester' ) === "1" ) {
	mw.loader.using( [ 'mediawiki.searchSuggest' ], function() {
		// Override default opensearch
		mw.searchSuggest.type = 'cirrus-suggest';
		mw.searchSuggest.request = function ( api, query, response, maxRows ) {
			return api.get( {
				action: 'cirrus-suggest',
				text: query,
				limit: maxRows
			} ).done( function ( data ) {
				var orig = $.map( data.suggest, function ( suggestion ) {
						return suggestion.text;
					} ) || []; 
				if ( orig.length >= maxRows ) 
					response( orig );
				else {
					api.get( {
						action: 'cirrus-suggest',
						text: hebeng( query ),
						limit: maxRows - data.suggest.length,
					} ).done( function ( data ) {
						var combined = orig.concat( $.map( data.suggest, function ( suggestion ) {
							return suggestion.text;
						} ) ); 
						response( combined );
					});
				}
			} );
		};
	} );
}
else
{
    var $searchBoxes = $( '#searchInput, #searchInput2, #powerSearchText, #searchText' );

    $searchBoxes.suggestions( {
        fetch: function( query ) {
            var $this = $( this );
            if ( query.length !== 0 ) {
                var params = {
                    action: 'opensearch',
                    search: query,
                    suggest: ''
                };
                $.ajax( {
                    data: params,
                    url: mw.util.wikiScript('api'),
                    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: mw.util.wikiScript('api'),
                                    dataType: 'json',
                                    success: function( data ) {
                                        if ( $.isArray( data ) && 1 in data ) 
                                            $this.suggestions( 'suggestions', orig.concat( data[1] ) );
                                    }
                                });
                            }
                        }
                    }
                } );
            }
        }
    });
} // if (cirrus) ... else
}, 1200); // setTimeout
} ); // document.ready
} // skin == vector