]> wagnertech.de Git - kivitendo-erp.git/commitdiff
make_defined_state auch beim Klicken ausserhalb des Pickers
authorSven Schöling <s.schoeling@linet-services.de>
Mon, 15 Jul 2013 14:08:09 +0000 (16:08 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Mon, 15 Jul 2013 14:08:09 +0000 (16:08 +0200)
Problem war, dass ein einfacher blur handler auch getriggert hat wenn das jqm
aufgeht. Dafür ist der timermechanismus jetzt mit ins widget gewandert und der
blur handler wird einfach abgebrochen

js/autocomplete_part.js
templates/webpages/part/part_picker_search.html

index 0a4886f17c4568581ea488e270d0c43593f56f6f..b89751e3b076dd41bd1c25ff3143a9fe74e5311f 100644 (file)
@@ -26,7 +26,9 @@ namespace('kivi', function(k){
     var state   = STATES.PICKED;
     var last_real = $real.val();
     var last_dummy = $dummy.val();
-    var open_dialog = function(){
+    var timer;
+
+    function open_dialog () {
       open_jqm_window({
         url: 'controller.pl?action=Part/part_picker_search',
         data: $.extend({
@@ -34,8 +36,9 @@ namespace('kivi', function(k){
         }, ajax_data($dummy.val())),
         id: 'part_selection',
       });
+      window.clearTimeout(timer);
       return true;
-    };
+    }
 
     function ajax_data(term) {
       var data = {
@@ -89,6 +92,11 @@ namespace('kivi', function(k){
       });
     };
 
+    function result_timer (event) {
+      window.clearTimeout(timer);
+      timer = window.setTimeout(update_results, 100);
+    }
+
     function close_popup() {
       $('#part_selection').jqmClose()
     };
@@ -156,7 +164,10 @@ namespace('kivi', function(k){
       }
     });
 
-//    $dummy.blur(make_defined_state);  // blur triggers also on open_jqm_dialog
+    $dummy.blur(function(){
+      window.clearTimeout(timer);
+      timer = window.setTimeout(make_defined_state, 100);
+    });
 
     // now add a picker div after the original input
     var pcont  = $('<span>').addClass('position-absolute');
@@ -173,6 +184,7 @@ namespace('kivi', function(k){
       convertible_unit: function() { return $convertible_unit },
       column:         function() { return $column },
       update_results: update_results,
+      result_timer:   result_timer,
       set_item:       set_item,
       reset:          make_defined_state,
       init_results:    function () {
index a3cf406182b1cc48ccd5624a5811872e08c3ffdc..318c95e10eddc1d7e95e8539cf30b3fefccd0795 100644 (file)
 </div>
 
 <script type='text/javascript'>
-  var timer;
   var pp = kivi.PartPicker($('#[% FORM.real_id %]'));
   $(function(){
     $('#part_picker_filter').focus();
     pp.update_results();
   });
-  $('#part_picker_filter').keypress(function (event){
-    window.clearTimeout(timer);
-    timer = window.setTimeout(pp.update_results, 100);
-  });
+  $('#part_picker_filter').keypress(pp.update_results);
 </script>