summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/js/views/activity/activity_controller.js
diff options
context:
space:
mode:
authorHiral Bhavsar <hbh@odoo.com>2018-11-16 13:09:14 +0000
committerMartin Geubelle <mge@odoo.com>2019-05-03 10:19:40 +0000
commit132c0ad9bf18e34809653a0cb8ca871858f6035e (patch)
tree5e037ed3d7e4bb4573cd0f3064bc22fb670ef534 /addons/mail/static/src/js/views/activity/activity_controller.js
parentfac99a901c1e062ba804b8c541a10e79ab4dae3a (diff)
[IMP] mail: allow to create record from activity view
In the activity view footer, it's now possible to create a new record (and an associated activity). When clicking on the link, a 'SelectCreate' dialog is opened and the activity is created when selecting a record. Task 1894990
Diffstat (limited to 'addons/mail/static/src/js/views/activity/activity_controller.js')
-rw-r--r--addons/mail/static/src/js/views/activity/activity_controller.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/addons/mail/static/src/js/views/activity/activity_controller.js b/addons/mail/static/src/js/views/activity/activity_controller.js
index 1fb5f928c50..ede639a80fd 100644
--- a/addons/mail/static/src/js/views/activity/activity_controller.js
+++ b/addons/mail/static/src/js/views/activity/activity_controller.js
@@ -2,11 +2,18 @@ odoo.define('mail.ActivityController', function (require) {
"use strict";
var BasicController = require('web.BasicController');
+var core = require('web.core');
+var field_registry = require('web.field_registry');
+var ViewDialogs = require('web.view_dialogs');
+
+var KanbanActivity = field_registry.get('kanban_activity');
+var _t = core._t;
var ActivityController = BasicController.extend({
custom_events: _.extend({}, BasicController.prototype.custom_events, {
empty_cell_clicked: '_onEmptyCell',
send_mail_template: '_onSendMailTemplate',
+ schedule_activity: '_onScheduleActivity',
}),
//--------------------------------------------------------------------------
@@ -28,6 +35,25 @@ var ActivityController = BasicController.extend({
/**
* @private
+ */
+ _onScheduleActivity: function () {
+ var self = this;
+
+ var state = this.model.get(this.handle);
+ new ViewDialogs.SelectCreateDialog(this, {
+ res_model: state.model,
+ domain: this.model.originalDomain,
+ title: _.str.sprintf(_t("Search: %s"), this.renderer.arch.attrs.string),
+ disable_multiple_selection: true,
+ on_selected: function (record) {
+ var fakeRecord = self.renderer.getKanbanActivityData({}, record[0]);
+ var widget = new KanbanActivity(self, 'activity_ids', fakeRecord, {});
+ widget.scheduleActivity();
+ },
+ }).open();
+ },
+ /**
+ * @private
* @param {OdooEvent} ev
*/
_onEmptyCell: function (ev) {