},
connect_barcode_scanner: function(){
var self =this;
- var code = [];
+ var numbers = [];
var timestamp = 0;
+ var nocode_timeout_id = 0;
+ var nocode_delay = 50;
+ function nocode(){
+ console.log('NoCode:',numbers);
+ numbers = [];
+ }
$('body').delegate('','keyup',function(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()){
- code = [];
+ clearTimeout(nocode_timeout_id);
+ nocode();
}
timestamp = new Date().getTime();
- code.push(e.keyCode - 48);
- if(code.length === 13){
- self.scan(code.join(''));
- code = [];
+ if(numbers.length === 13){
+ self.scan(numbers.join(''));
+ numbers = [];
+ clearTimeout(nocode_timeout_id);
}
}else{
- numbers = [];
- code = [];
++ nocode();
}
});
},