kivitendo/js/kivi.QuickSearch.js @ 4a663bf8
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') });
|
||
});
|
||||
});
|