[IMP] point_of_sale: improve the reactivity of the searchbox by timeouting on the search instead on searching after each character change

bzr revid: fva@openerp.com-20131112160534-004d8df6ede1b4yt
This commit is contained in:
Frédéric van der Essen
2013-11-12 17:05:34 +01:00
parent 2c5632271f
commit ddf6ec224f
+20 -14
View File
@@ -560,26 +560,32 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
var products = this.pos.db.get_product_by_category(this.category.id);
self.pos.get('products').reset(products);
var searchtimeout = null;
// filter the products according to the search string
this.$('.searchbox input').keyup(function(event){
console.log('event',event);
query = $(this).val().toLowerCase();
if(query){
if(event.which === 13){
if( self.pos.get('products').size() === 1 ){
self.pos.get('selectedOrder').addProduct(self.pos.get('products').at(0));
self.clear_search();
clearTimeout(searchtimeout);
var query = $(this).val().toLowerCase();
searchtimeout = setTimeout(function(){
if(query){
if(event.which === 13){
if( self.pos.get('products').size() === 1 ){
self.pos.get('selectedOrder').addProduct(self.pos.get('products').at(0));
self.clear_search();
}
}else{
var products = self.pos.db.search_product_in_category(self.category.id, query);
self.pos.get('products').reset(products);
self.$('.search-clear').fadeIn();
}
}else{
var products = self.pos.db.search_product_in_category(self.category.id, query);
var products = self.pos.db.get_product_by_category(self.category.id);
self.pos.get('products').reset(products);
self.$('.search-clear').fadeIn();
self.$('.search-clear').fadeOut();
}
}else{
var products = self.pos.db.get_product_by_category(self.category.id);
self.pos.get('products').reset(products);
self.$('.search-clear').fadeOut();
}
},200);
});
//reset the search when clicking on reset