You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

109 lines
3.2 KiB

odoo.define('pos_lock_session.session_lock', function (require) {
"use strict";
var core = require('web.core');
var chrome = require('point_of_sale.chrome');
var gui = require('point_of_sale.gui');
var PopupWidget = require('point_of_sale.popups');
var _t = core._t;
var SessionLock = PopupWidget.extend({
template:'SessionLock',
events: _.extend({}, PopupWidget.prototype.events,{
"click .screen_lock" : "unlock_screen",
}),
show: function(options){
var self = this;
this._super(options);
$(document).keydown(function(e) {
if(e.keyCode == 13) {
e.preventDefault();
self.gui.show_screen('login',{lock:true});
}
});
},
unlock_screen:function(){
var self = this;
this.gui.show_screen('login',{lock:true});
}
});
gui.define_popup({name:'lock', widget: SessionLock});
chrome.Chrome.include({
events: {
"click .pos-lock": "on_click_pos_lock",
},
init: function() {
var self = this;
this._super();
$(document).keydown(function(e) {
if(self.pos.config.pos_lock){
if(e.keyCode == 76 && e.ctrlKey) {
e.preventDefault();
e.stopPropagation();
var cashier = self.pos.get_cashier().id;
for (var i = 0; i < self.pos.users.length; i++) {
var user = self.pos.users[i];
if (user.id === cashier) {
var cashier_pswd = user.pos_security_pin;
}
}
if(!cashier_pswd){
self.gui.show_popup('error', {
'title': _t('Security pin is not set'),
'body': _t('Please set a security pin.'),
});
}
else{
self.gui.show_popup('lock',{});
}
}
}
});
},
renderElement: function(){
var self = this;
return this._super();
},
build_widgets: function(){
this._super();
var cashier = this.pos.get_cashier().id;
for (var i = 0; i < this.pos.users.length; i++) {
var user = this.pos.users[i];
if (user.id === cashier) {
var cashier_pswd = user.pos_security_pin;
}
}
if (this.pos.config.pos_lock && cashier_pswd) {
this.gui.set_startup_screen('login');
}
},
on_click_pos_lock: function (e) {
var self = this;
e.stopPropagation();
var cashier = this.pos.get_cashier().id;
for (var i = 0; i < this.pos.users.length; i++) {
var user = this.pos.users[i];
if (user.id === cashier) {
var cashier_pswd = user.pos_security_pin;
}
}
if(!cashier_pswd){
this.gui.show_popup('error', {
'title': _t('Security pin is not set'),
'body': _t('Please set a security pin.'),
});
}
else{
self.gui.show_popup('lock',{});
}
},
});
});