diff options
| author | Yannick Tivisse <yti@odoo.com> | 2020-05-18 16:05:42 +0000 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2020-05-25 14:50:19 +0000 |
| commit | 12b526432f5b3586742c6f3ce0a03bd33a9d0525 (patch) | |
| tree | 8fdd681f1316700e8bda8243627282a42b683a07 /addons/hr/static/src | |
| parent | 7a7b5b5d9d01e193c2330fe4fe076c2bf53fbc49 (diff) | |
[IMP] hr: Display chat icons on employee kanban/form views
Purpose
=======
On the Employees App, we dont have a smart way to start a discuss
with a colleague or an employee.
Specification
=============
Style for each button :
- use fa-comments
- use primary color/action color (green)
On private/public employees form/kanban views, add a button to
start a chat with the user
closes odoo/odoo#51484
Taskid: 2252207
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Diffstat (limited to 'addons/hr/static/src')
| -rw-r--r-- | addons/hr/static/src/js/chat.js | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/addons/hr/static/src/js/chat.js b/addons/hr/static/src/js/chat.js index 86e7d33ffc3..bcffe4ca47d 100644 --- a/addons/hr/static/src/js/chat.js +++ b/addons/hr/static/src/js/chat.js @@ -1,13 +1,18 @@ odoo.define('hr.employee_chat', function (require) { 'use strict'; + var viewRegistry = require('web.view_registry'); var FormController = require('web.FormController'); var FormView = require('web.FormView'); var FormRenderer = require('web.FormRenderer'); - var viewRegistry = require('web.view_registry'); - var EmployeeFormRenderer = FormRenderer.extend({ + var KanbanController = require('web.KanbanController'); + var KanbanView = require('web.KanbanView'); + var KanbanRenderer = require('web.KanbanRenderer'); + var KanbanRecord = require('web.KanbanRecord'); + // CHAT MIXIN + var ChatMixin = { /** * @override */ @@ -37,7 +42,10 @@ odoo.define('hr.employee_chat', function (require) { }); return true; }, - }); + }; + + // USAGE OF CHAT MIXIN IN FORM VIEWS + var EmployeeFormRenderer = FormRenderer.extend(ChatMixin); var EmployeeFormController = FormController.extend({ custom_events: _.extend({}, FormController.prototype.custom_events, { @@ -57,5 +65,32 @@ odoo.define('hr.employee_chat', function (require) { }); viewRegistry.add('hr_employee_form', EmployeeFormView); - return EmployeeFormView; + + // USAGE OF CHAT MIXIN IN KANBAN VIEWS + var EmployeeKanbanRecord = KanbanRecord.extend(ChatMixin); + + var EmployeeKanbanRenderer = KanbanRenderer.extend({ + config: Object.assign({}, KanbanRenderer.prototype.config, { + KanbanRecord: EmployeeKanbanRecord, + }), + }); + + var EmployeeKanbanController = KanbanController.extend({ + custom_events: _.extend({}, KanbanController.prototype.custom_events, { + open_chat: '_onOpenChat' + }), + + _onOpenChat: function (ev) { + this.call('mail_service', 'openDMChatWindow', ev.data.partner_id); + }, + }); + + var EmployeeKanbanView = KanbanView.extend({ + config: _.extend({}, KanbanView.prototype.config, { + Controller: EmployeeKanbanController, + Renderer: EmployeeKanbanRenderer + }), + }); + + viewRegistry.add('hr_employee_kanban', EmployeeKanbanView); }); |
