[FIX] point_of_sale: onscreen keyboard would stop working when category changed + make it disappear outside product screen

bzr revid: fva@openerp.com-20130912151334-c3kc4c4137amrl9f
This commit is contained in:
Frédéric van der Essen 2013-09-12 17:13:34 +02:00
parent c82bbdbb91
commit 00d1183947
3 changed files with 13 additions and 11 deletions

View File

@ -762,9 +762,6 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
this.product_categories_widget.reset_category();
this.pos_widget.order_widget.set_numpad_state(this.pos_widget.numpad.state);
if(this.pos.iface_vkeyboard){
this.pos_widget.onscreen_keyboard.connect();
}
if(this.pos_widget.screen_selector.current_mode === 'client'){
this.add_action_button({
@ -781,6 +778,9 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
this._super();
this.pos_widget.order_widget.set_numpad_state(null);
this.pos_widget.payment_screen.set_numpad_state(null);
if(this.pos.iface_vkeyboard && this.pos_widget.onscreen_keyboard){
this.pos_widget.onscreen_keyboard.hide();
}
},
});

View File

@ -27,9 +27,7 @@ function openerp_pos_keyboard(instance, module){ //module is instance.point_of_s
}
this.input_selector = options.input_selector || '.searchbox input';
//show the keyboard when the input zone is clicked.
$(this.input_selector).focus(function(){self.show();});
this.$target = null;
//Keyboard state
this.capslock = false;
@ -37,14 +35,15 @@ function openerp_pos_keyboard(instance, module){ //module is instance.point_of_s
this.numlock = false;
},
connect : function(){
connect : function($target){
var self = this;
$(this.input_selector).focus(function(){self.show();});
this.$target = $target;
$target.focus(function(){self.show();});
},
// Write a character to the input zone
writeCharacter: function(character){
var $input = $(this.input_selector);
var $input = this.$target
$input[0].value += character;
$input.keydown();
$input.keyup();
@ -56,7 +55,7 @@ function openerp_pos_keyboard(instance, module){ //module is instance.point_of_s
// Removes the last character from the input zone.
deleteCharacter: function(){
var $input = $(this.input_selector);
var $input = this.$target;
var input_value = $input[0].value;
$input[0].value = input_value.substr(0, input_value.length - 1);
$input.keydown();
@ -65,7 +64,7 @@ function openerp_pos_keyboard(instance, module){ //module is instance.point_of_s
// Clears the content of the input zone.
deleteAllCharacters: function(){
var $input = $(this.input_selector);
var $input = this.$target;
$input[0].value = "";
$input.keydown();
$input.keyup();

View File

@ -541,6 +541,9 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
self.renderElement();
self.search_and_categories(category);
});
if(this.pos.iface_vkeyboard && this.pos_widget.onscreen_keyboard){
this.pos_widget.onscreen_keyboard.connect(this.$('.searchbox input'));
}
this.search_and_categories();
},