[FIX] stock.ui: fix crashes on package copy and delete, made package selection more...
authorFrédéric van der Essen <fva@openerp.com>
Fri, 28 Jun 2013 13:19:58 +0000 (15:19 +0200)
committerFrédéric van der Essen <fva@openerp.com>
Fri, 28 Jun 2013 13:19:58 +0000 (15:19 +0200)
bzr revid: fva@openerp.com-20130628131958-qhmv44iq9ne5l68e

addons/stock/static/src/css/picking.css
addons/stock/static/src/js/widgets.js

index 3c43237..61f3fe5 100644 (file)
 }
 .oe_pick_widget .oe_pick_list_table tbody tr.oe_selected{
     background: rgb(236, 236, 247);
+    outline: solid 1px rgba(79, 107, 255, 0.25);
 }
 .oe_pick_widget .oe_pick_list_table td,
 .oe_pick_widget .oe_pick_list_table th {
index 6fee541..10c16e3 100644 (file)
@@ -227,6 +227,7 @@ function openerp_picking_widgets(instance){
                 });
         },
         copy_package: function(package_id){
+            var self = this;
             console.log('Copy Package:',package_id);
             new instance.web.Model('stock.quant.package')
                 .call('action_copy',[[package_id]])
@@ -235,6 +236,7 @@ function openerp_picking_widgets(instance){
                 });
         },
         delete_package: function(package_id){
+            var self = this;
             console.log('Delete Package:',package_id);
             new instance.web.Model('stock.quant.package')
                 .call('unlink',[[package_id]])
@@ -272,18 +274,20 @@ function openerp_picking_widgets(instance){
             var nocode_timeout_id = 0;
             var nocode_delay = 50;
             function nocode(){
-                console.log('NoCode:',numbers);
+                //console.log('NoCode:',numbers);
                 numbers = [];
             }
-            $('body').delegate('','keyup',function(e){
+            // it is important to catch the keypress event and not keyup/keydown as keypress normalizes the input codes :) 
+            $('body').delegate('','keypress',function(e){ 
+                //console.log('Key:',e);
                 if (e.keyCode >= 48 && e.keyCode < 58){
                     clearTimeout(nocode_timeout_id);
                     nocode_timeout_id = setTimeout(nocode,nocode_delay);
-                    numbers.push(e.keyCode - 48);
                     if(timestamp + 30 < new Date().getTime()){
                         clearTimeout(nocode_timeout_id);
                         nocode();
                     }
+                    numbers.push(e.keyCode - 48);
                     timestamp = new Date().getTime();
                     if(numbers.length === 13){
                         self.scan(numbers.join(''));