summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Lempereur <nle@odoo.com>2021-02-10 19:04:56 +0000
committerNicolas Lempereur <nle@odoo.com>2021-02-15 12:29:04 +0000
commitd056feb4ac885acc6c829c57531b985027d94daf (patch)
treeb00ade9744e9c532a385ba328ca62deec41c6f38
parent02d32aa9936cb0d9a1248bb866a31f4a40a0eac2 (diff)
[FIX] point_of_sale: select employee with pin by barcode
When switching employee on point of sale, we may have a PIN to enter. If we enter the barcode and there is a PIN, we get an "Invalid Password" error. Why: ==== When we switch with a barcode 12, the barcode system will catch events and prevent their propagation: - {'type': 'keypress', 'key': 49} - {'type': 'keypress', 'key': 50} - {'type': 'keypress', 'key': 13} For respectively '1', '2', 'Newline'. If it match an employee, the PIN number modal is opened which will listen to KEYUP events => it receives very shortly: - {'type': 'KEYUP', 'key': 13} which is the newline character which follows the KEYPRESS. With a "Return" key received, the PIN modale closes with empty value and an error "Invalid Password" is shown. Solution: ========= Ignore the newline character if no number has been selected. opw-2448585 closes odoo/odoo#66117 Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com> Co-authored-by: Joseph Caburnay <jcb@odoo.com>
-rw-r--r--addons/point_of_sale/static/src/js/Popups/NumberPopup.js6
1 files changed, 6 insertions, 0 deletions
diff --git a/addons/point_of_sale/static/src/js/Popups/NumberPopup.js b/addons/point_of_sale/static/src/js/Popups/NumberPopup.js
index 385007d5812..07d2cb547bf 100644
--- a/addons/point_of_sale/static/src/js/Popups/NumberPopup.js
+++ b/addons/point_of_sale/static/src/js/Popups/NumberPopup.js
@@ -47,6 +47,12 @@ odoo.define('point_of_sale.NumberPopup', function(require) {
return this.state.buffer;
}
}
+ confirm(event) {
+ const bufferState = event.detail;
+ if (bufferState.buffer !== '') {
+ super.confirm();
+ }
+ }
sendInput(key) {
this.trigger('numpad-click-input', { key });
}