X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=js%2Fautocomplete_part.js;h=d9bf8dbbba48f494dce4ba44cc29690f1630ce1c;hb=574855561514a864f554776c421e7037196e714d;hp=b89751e3b076dd41bd1c25ff3143a9fe74e5311f;hpb=83fb0fe04ed0f7855c4d54f91a5fc508c47e058e;p=kivitendo-erp.git diff --git a/js/autocomplete_part.js b/js/autocomplete_part.js index b89751e3b..d9bf8dbbb 100644 --- a/js/autocomplete_part.js +++ b/js/autocomplete_part.js @@ -8,10 +8,15 @@ namespace('kivi', function(k){ ESCAPE: 27, ENTER: 13, TAB: 9, + LEFT: 37, + RIGHT: 39, + PAGE_UP: 33, + PAGE_DOWN: 34, }; var o = $.extend({ limit: 20, delay: 50, + fat_set_item: $real.hasClass('partpicker_fat_set_item'), }, options); var STATES = { UNIQUE: 1, @@ -29,12 +34,17 @@ namespace('kivi', function(k){ var timer; function open_dialog () { - open_jqm_window({ + k.popup_dialog({ url: 'controller.pl?action=Part/part_picker_search', data: $.extend({ real_id: real_id, }, ajax_data($dummy.val())), id: 'part_selection', + dialog: { + title: k.t8('Part picker'), + width: 800, + height: 800, + } }); window.clearTimeout(timer); return true; @@ -42,9 +52,10 @@ namespace('kivi', function(k){ function ajax_data(term) { var data = { - 'filter.all:substr::ilike': term, + 'filter.all:substr:multi::ilike': term, 'filter.obsolete': 0, 'filter.unit_obj.convertible_to': $convertible_unit && $convertible_unit.val() ? $convertible_unit.val() : '', + no_paginate: $('#no_paginate').prop('checked') ? 1 : 0, column: $column && $column.val() ? $column.val() : '', current: $real.val(), }; @@ -71,6 +82,18 @@ namespace('kivi', function(k){ last_real = $real.val(); last_dummy = $dummy.val(); $real.trigger('change'); + + if (o.fat_set_item && item.id) { + $.ajax({ + url: 'controller.pl?action=Part/show.json', + data: { id: item.id }, + success: function(rsp) { + $real.trigger('set_item:PartPicker', rsp); + }, + }); + } else { + $real.trigger('set_item:PartPicker', item); + } } function make_defined_state () { @@ -93,12 +116,22 @@ namespace('kivi', function(k){ }; function result_timer (event) { + if (!$('no_paginate').prop('checked')) { + if (event.keyCode == KEY.PAGE_UP) { + $('#part_picker_result a.paginate-prev').click(); + return; + } + if (event.keyCode == KEY.PAGE_DOWN) { + $('#part_picker_result a.paginate-next').click(); + return; + } + } window.clearTimeout(timer); timer = window.setTimeout(update_results, 100); } function close_popup() { - $('#part_selection').jqmClose() + $('#part_selection').dialog('close'); }; $dummy.autocomplete({ @@ -174,7 +207,7 @@ namespace('kivi', function(k){ var picker = $('
'); $dummy.after(pcont); pcont.append(picker); - picker.addClass('icon16 CRM--Schnellsuche').click(open_dialog); + picker.addClass('icon16 crm--search').click(open_dialog); var pp = { real: function() { return $real }, @@ -191,10 +224,12 @@ namespace('kivi', function(k){ $('div.part_picker_part').each(function(){ $(this).click(function(){ set_item({ - name: $(this).children('input.part_picker_description').val(), id: $(this).children('input.part_picker_id').val(), + name: $(this).children('input.part_picker_description').val(), + unit: $(this).children('input.part_picker_unit').val(), }); close_popup(); + $dummy.focus(); return true; }); });