Projekt

Allgemein

Profil

Herunterladen (1,41 KB) Statistiken
| Zweig: | Markierung: | Revision:
6c630204 Sven Schöling
namespace('kivi', function(k){
e4971398 Sven Schöling
'use strict';
6c630204 Sven Schöling
k.QuickSearch = function($real, options) {
if ($real.data("quick_search"))
return $real.data("quick_search");

var KEY = {
ENTER: 13,
};
var o = $.extend({
limit: 20,
delay: 50,
}, options);

function send_query(action, term, id, success) {
var data = { module: o.module };
e4971398 Sven Schöling
if (term !== undefined) data.term = term;
if (id !== undefined) data.id = id;
6c630204 Sven Schöling
$.ajax($.extend(o, {
url: 'controller.pl?action=TopQuickSearch/' + action,
dataType: "json",
data: data,
success: success
}));
}

function submit_search(term) {
send_query('do_search', term, undefined, kivi.eval_json_result);
}

$real.autocomplete({
source: function(req, rsp) {
e4971398 Sven Schöling
send_query('query_autocomplete', req.term, undefined, function (data){ rsp(data); });
6c630204 Sven Schöling
},
select: function(event, ui) {
send_query('select_autocomplete', undefined, ui.item.id, kivi.eval_json_result);
},
});
6b50c021 Sven Schöling
$real.keypress(function(event){
6c630204 Sven Schöling
if (event.which == KEY.ENTER) {
e4971398 Sven Schöling
if ($real.val() !== '') {
6c630204 Sven Schöling
submit_search($real.val());
}
}
});

$real.data('quick_search', {});
e4971398 Sven Schöling
};
6c630204 Sven Schöling
});

$(function(){
$('input[id^=top-quick-search]').each(function(_,e){
e4971398 Sven Schöling
kivi.QuickSearch($(e), { module: $(e).attr('module') });
});
});