diff --git a/addons/hr_attendance/hr_attendance_view.xml b/addons/hr_attendance/hr_attendance_view.xml
index 258177bfd5e..b29ea0202c3 100644
--- a/addons/hr_attendance/hr_attendance_view.xml
+++ b/addons/hr_attendance/hr_attendance_view.xml
@@ -130,8 +130,8 @@
-
-
+
+
diff --git a/addons/hr_attendance/static/src/js/sign_in_out.js b/addons/hr_attendance/static/src/js/sign_in_out.js
index e68857bea17..78606b614f8 100644
--- a/addons/hr_attendance/static/src/js/sign_in_out.js
+++ b/addons/hr_attendance/static/src/js/sign_in_out.js
@@ -1,18 +1,47 @@
openerp.hr_attendance = function(openerp) {
+
+ openerp.hr.Attrs_Button = openerp.web.form.WidgetButton.extend({
+ init: function(view, node) {
+ this._super(view, node);
+ },
+ on_click: function() {
+ var self=this;
+ this._super();
+ var state = this.node.attrs.states
+ if (this.string === 'Sign Out'){
+ openerp.webclient.user_menu.hr_sign_out.replace(openerp.webclient.$element.find('.oe_systray').children())
+ }
+ if (this.string === "Sign In"){
+ openerp.webclient.user_menu.hr_sign_in.replace(openerp.webclient.$element.find('.oe_systray').children());
+ }
+ }
+ });
+ openerp.web.form.tags.add('att_button', 'openerp.hr.Attrs_Button');
openerp.hr_attendance.SignIn = openerp.web.Widget.extend({
template: 'SignInNotifier',
+ init : function(parent, event){
+ this._super(parent)
+ this.event = event
+ },
+
start: function() {
- this.$element.on('click', '.sign_in', this.getParent().on_sign_in_out);
- }
+ this.$element.on('click', this.event);
+ },
});
openerp.hr_attendance.SignOut = openerp.web.Widget.extend({
template: 'SignOutNotifier',
- start: function() {
- this.$element.on('click', '.sign_out', this.getParent().on_sign_in_out);
- }
+ init : function(parent, event){
+ this._super(parent)
+ this.event = event
+ },
+
+ start: function() {
+ this.$element.on('click', this.event);
+ },
+
});
openerp.hr_attendance.SignInOut = openerp.web.Widget.extend({
@@ -27,16 +56,17 @@ openerp.hr_attendance = function(openerp) {
},
start: function() {
+ var self = this;
return this.dataset.read_slice(['state']).done(this.do_sign_in_out);
},
do_sign_in_out: function(user) {
if(_.isEmpty(user)) return;
if(user[0]['state'] === 'present') {
- this.sign_out = new openerp.hr_attendance.SignOut(this);
+ this.sign_out = new openerp.hr_attendance.SignOut(this, this.on_sign_in_out);
this.sign_out.appendTo(this.$element);
} else {
- this.sign_in = new openerp.hr_attendance.SignIn(this);
+ this.sign_in = new openerp.hr_attendance.SignIn(this, this.on_sign_in_out);
this.sign_in.appendTo(this.$element);
}
},
@@ -52,18 +82,16 @@ openerp.hr_attendance = function(openerp) {
action = action[0];
action.context = JSON.parse(action.context);
var action_manager = new openerp.web.ActionManager(self);
- action_manager.do_action(action, function() {
- self.on_close($(evt.currentTarget).attr('class'));
- });
+ action_manager.do_action(action, self.on_close);
});
},
- on_close: function(target) {
- if(target === 'sign_in') {
+ on_close: function() {
+ if(this.sign_in) {
this.sign_in.destroy();
this.sign_out = new openerp.hr_attendance.SignOut(this);
this.sign_out.appendTo(this.$element);
- } else if(target === 'sign_out') {
+ } else if(this.sign_out) {
this.sign_out.destroy();
this.sign_in = new openerp.hr_attendance.SignIn(this);
this.sign_in.appendTo(this.$element);
@@ -71,12 +99,16 @@ openerp.hr_attendance = function(openerp) {
}
});
+
openerp.web.UserMenu.include({
do_update: function() {
var self = this;
this._super();
this.update_promise.then(function() {
- self.hr_sign_in_out = new openerp.hr_attendance.SignInOut(self);
+ self.hr_sign_in_out = new openerp.hr_attendance.SignInOut(self);
+ var event = self.hr_sign_in_out.on_sign_in_out
+ self.hr_sign_in = new openerp.hr_attendance.SignIn(self, event)
+ self.hr_sign_out = new openerp.hr_attendance.SignOut(self, event )
self.hr_sign_in_out.appendTo(openerp.webclient.$element.find('.oe_systray'))
});
}
diff --git a/addons/hr_attendance/wizard/hr_attendance_sign_in_out_view.xml b/addons/hr_attendance/wizard/hr_attendance_sign_in_out_view.xml
index b729dd85e5b..de57ede7d77 100644
--- a/addons/hr_attendance/wizard/hr_attendance_sign_in_out_view.xml
+++ b/addons/hr_attendance/wizard/hr_attendance_sign_in_out_view.xml
@@ -7,7 +7,6 @@
form
@@ -66,7 +65,7 @@
-
+
@@ -86,7 +85,7 @@
-
+
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index d822f10d944..21d47fae848 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -91,8 +91,8 @@
-
-
+
+