X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=js%2Fkivi.Part.js;h=de5571cc92aa92a774d452ec02ad761bc2d80694;hb=cd39824ebc0e001b6b05a1b073ffd22afefbc9d1;hp=06f9591fdfe292ce9724c309baac366af4e1483c;hpb=5aec18fed79986d088e3a7ed05a9166c48d05b39;p=kivitendo-erp.git diff --git a/js/kivi.Part.js b/js/kivi.Part.js index 06f9591fd..de5571cc9 100644 --- a/js/kivi.Part.js +++ b/js/kivi.Part.js @@ -274,6 +274,7 @@ namespace('kivi.Part', function(ns) { TAB: 9, LEFT: 37, RIGHT: 39, + DOWN: 40, PAGE_UP: 33, PAGE_DOWN: 34, SHIFT: 16, @@ -284,11 +285,16 @@ namespace('kivi.Part', function(ns) { PICKED: 'partpicker-picked', UNDEFINED: 'partpicker-undefined', FAT_SET_ITEM: 'partpicker_fat_set_item', - } + }; var o = $.extend({ limit: 20, delay: 50, fat_set_item: $real.hasClass(CLASSES.FAT_SET_ITEM), + action: { + on_enter_match_none: function(){}, + on_enter_match_one: function(){$('#update_button').click();}, + on_enter_match_many: function(){open_dialog();} + } }, options); var STATES = { PICKED: CLASSES.PICKED, @@ -300,6 +306,7 @@ namespace('kivi.Part', function(ns) { var $classification_id = $('#' + real_id + '_classification_id'); var $unit = $('#' + real_id + '_unit'); var $convertible_unit = $('#' + real_id + '_convertible_unit'); + var autocomplete_open = false; var state = STATES.PICKED; var last_real = $real.val(); var last_dummy = $dummy.val(); @@ -360,7 +367,7 @@ namespace('kivi.Part', function(ns) { if (o.fat_set_item && item.id) { $.ajax({ url: 'controller.pl?action=Part/show.json', - data: { id: item.id }, + data: { 'part.id': item.id }, success: function(rsp) { $real.trigger('set_item:PartPicker', rsp); }, @@ -458,6 +465,12 @@ namespace('kivi.Part', function(ns) { search: function(event, ui) { if ((event.which == KEY.SHIFT) || (event.which == KEY.CTRL) || (event.which == KEY.ALT)) event.preventDefault(); + }, + open: function() { + autocomplete_open = true; + }, + close: function() { + autocomplete_open = false; } }); /* In case users are impatient and want to skip ahead: @@ -487,11 +500,16 @@ namespace('kivi.Part', function(ns) { } if (event.which == KEY.ENTER) { handle_changed_text({ - match_one: function(){$('#update_button').click();}, - match_many: function(){open_dialog();} + match_one: o.action.on_enter_match_one, + match_many: o.action.on_enter_match_many }); return false; } + } else if (event.which == KEY.DOWN && !autocomplete_open) { + var old_options = $dummy.autocomplete('option'); + $dummy.autocomplete('option', 'minLength', 0); + $dummy.autocomplete('search', $dummy.val()); + $dummy.autocomplete('option', 'minLength', old_options.minLength); } else if ((event.which != KEY.SHIFT) && (event.which != KEY.CTRL) && (event.which != KEY.ALT)) { state = STATES.UNDEFINED; } @@ -553,6 +571,12 @@ namespace('kivi.Part', function(ns) { return pp; }; + ns.reinit_widgets = function() { + kivi.run_once_for('input.part_autocomplete', 'part_picker', function(elt) { + kivi.Part.Picker($(elt)); + }); + } + $(function(){ // assortment @@ -595,8 +619,6 @@ namespace('kivi.Part', function(ns) { $('#part_warehouse_id').change(kivi.Part.reload_bin_selection); - $('input.part_autocomplete').each(function(i,real){ - kivi.Part.Picker($(real)); - }); + ns.reinit_widgets(); }); });