From 53dcf1b9deb4f605d5a789cd0f0b4b91e861bd64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20van=20der=20Essen?= Date: Tue, 27 Jan 2015 18:17:40 +0100 Subject: [PATCH] [IMP] point_of_sale: prevent key repeats in the payment screen. --- addons/point_of_sale/static/src/js/screens.js | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/addons/point_of_sale/static/src/js/screens.js b/addons/point_of_sale/static/src/js/screens.js index 0232fb6aebe..e6bf2624db7 100644 --- a/addons/point_of_sale/static/src/js/screens.js +++ b/addons/point_of_sale/static/src/js/screens.js @@ -1400,6 +1400,17 @@ openerp.point_of_sale.load_screens = function load_screens(instance, module){ // this.inputbuffer = ""; this.firstinput = true; + + // This is a keydown handler that prevents backspace from + // doing a back navigation + this.keyboard_no_backnav = function(event){ + if (event.keyCode === 8) { // Backspace + event.preventDefault(); + } + }; + + // This keyboard handler is on keyup to prevent keypress repeats + // but it thus cannot prevent the back navigation this.keyboard_handler = function(event){ var key = ''; if ( event.keyCode === 13 ) { // Enter @@ -1410,7 +1421,6 @@ openerp.point_of_sale.load_screens = function load_screens(instance, module){ // key = 'CLEAR'; } else if ( event.keyCode === 8 ) { // Backspace key = 'BACKSPACE'; - event.preventDefault(); // Prevents history back nav } else if ( event.keyCode >= 48 && event.keyCode <= 57 ){ // Numbers key = '' + (event.keyCode - 48); } else if ( event.keyCode >= 96 && event.keyCode <= 105 ){ // Numpad Numbers @@ -1422,7 +1432,7 @@ openerp.point_of_sale.load_screens = function load_screens(instance, module){ // } self.payment_input(key); - + event.preventDefault(); }; }, // resets the current input buffer @@ -1590,11 +1600,13 @@ openerp.point_of_sale.load_screens = function load_screens(instance, module){ // this.reset_input(); this.render_paymentlines(); this.order_changes(); - window.document.body.addEventListener('keydown',this.keyboard_handler); + window.document.body.addEventListener('keyup',this.keyboard_handler); + window.document.body.addEventListener('keydown',this.keyboard_no_backnav); this._super(); }, hide: function(){ - window.document.body.removeEventListener('keydown',this.keyboard_handler); + window.document.body.removeEventListener('keyup',this.keyboard_handler); + window.document.body.removeEventListener('keydown',this.keyboard_no_backnav); this._super(); }, // sets up listeners to watch for order changes