From a7d14378890a764687df645ded1c042f8bde5417 Mon Sep 17 00:00:00 2001 From: "Harry (OpenERP)" Date: Tue, 8 May 2012 11:20:04 +0530 Subject: [PATCH] [REVIEW] code review bzr revid: hmo@tinyerp.com-20120508055004-z7up5zzzg2vpqu47 --- .../hr_attendance/static/src/js/attendance.js | 51 ++++++++++--------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/addons/hr_attendance/static/src/js/attendance.js b/addons/hr_attendance/static/src/js/attendance.js index c1a4ef341a6..778a2fb5546 100644 --- a/addons/hr_attendance/static/src/js/attendance.js +++ b/addons/hr_attendance/static/src/js/attendance.js @@ -1,14 +1,14 @@ -openerp.hr_attendance = function(instance) { +openerp.hr_attendance = function(instance) { var QWeb = instance.web.qweb; instance.hr_attendance.AttendanceNotifier = instance.web.Widget.extend({ template: 'AttendanceNotifier', - - init: function(attendance_status){ - console.log('nnnnnn',this) - this.attendance_status = attendance_status; + init: function(parent){ + this._super(parent); + this.session = parent.session; + this.employee = new instance.web.DataSetSearch(this, 'hr.employee', this.session.user_context, [['user_id','=', this.session.uid]]); }, renderElement: function() { - console.log('render',this) + var self = this; if (this.attendance_status == 'present'){ action_type = 'sign_out'; } @@ -16,42 +16,47 @@ openerp.hr_attendance = function(instance) { action_type = 'sign_in'; } this.$element = $(QWeb.render(this.template, {'action':action_type})); - console.log('element',this.$element) - this.$element.click(this.on_attendance); + element = $('.oe_attendance_button') + if (element.length != 0){ + element.attr('src', this.$element.attr('src')); + } + else{ + this.$element.appendTo($('.oe_systray')); + this.$element.click(self.on_click); + } }, - - - - on_attendance: function(event) { + + on_click: function() { var self = this; - console.log('eventtt',event) action = new instance.web.DataSetSearch(this, 'ir.actions.act_window', {}, [['res_model', '=', 'hr.sign.in.out']]); action.read_slice().done(function(action) { action = action[0]; action.context = JSON.parse(action.context); var action_manager = new instance.web.ActionManager(self); action_manager.do_action(action, function(){ - window.location.reload(); + self.employee.read_slice(['state']).done(function(employee) { + if(_.isEmpty(employee)) return; + self.attendance_status = employee[0]['state']; + self.renderElement(); + }); }); }); }, }); - + instance.web.UserMenu.include({ do_update: function() { var self = this; this._super(); this.update_promise.then(function() { - self.employee = new instance.web.DataSetSearch(self, 'hr.employee', self.session.user_context, [['user_id','=', self.session.uid]]); - self.employee.read_slice(['state']).done(self.do_update_attendance_status); + attendance = new instance.hr_attendance.AttendanceNotifier(self); + attendance.employee.read_slice(['state']).done(function(employee) { + if(_.isEmpty(employee)) return; + attendance.attendance_status = employee[0]['state']; + attendance.renderElement(); + }); }); }, - do_update_attendance_status: function(employee) { - if(_.isEmpty(employee)) return; - attendance_status = employee[0]['state'] - self.attendance = new instance.hr_attendance.AttendanceNotifier(attendance_status); - self.attendance.appendTo(instance.webclient.$element.find('.oe_systray')) - }, }); }