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
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',{});
|
|
}
|
|
},
|
|
|
|
});
|
|
|
|
});
|