From 153dd65a0d7e937d67e7fdbe6e7fffeaffc5ed4f Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Sat, 30 Jul 2022 13:04:58 +0300 Subject: [PATCH] ctrl+s fixes --- client/modules/crm/src/views/calendar/calendar.js | 13 +++++++++---- client/modules/crm/src/views/calendar/timeline.js | 11 ++++++++--- client/src/views/modals/detail.js | 4 ++-- client/src/views/modals/edit.js | 2 +- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/client/modules/crm/src/views/calendar/calendar.js b/client/modules/crm/src/views/calendar/calendar.js index fdf721a346..b57c1a674c 100644 --- a/client/modules/crm/src/views/calendar/calendar.js +++ b/client/modules/crm/src/views/calendar/calendar.js @@ -656,8 +656,12 @@ define('crm:views/calendar/calendar', ['view', 'lib!full-calendar'], function (D this.removeModel(model); }); - this.listenToOnce(view, 'after:save', model => { - view.close(); + this.listenTo(view, 'after:save', (model, o) => { + o = o || {}; + + if (!o.bypassClose) { + view.close(); + } this.updateModel(model); }); @@ -867,7 +871,7 @@ define('crm:views/calendar/calendar', ['view', 'lib!full-calendar'], function (D }, addModel: function (model) { - let d = model.attributes; + let d = model.getClonedAttributes(); d.scope = model.name; @@ -887,7 +891,8 @@ define('crm:views/calendar/calendar', ['view', 'lib!full-calendar'], function (D let event = events[0]; - let d = model.attributes; + let d = model.getClonedAttributes(); + d.scope = model.name; let data = this.convertToFcEvent(d); diff --git a/client/modules/crm/src/views/calendar/timeline.js b/client/modules/crm/src/views/calendar/timeline.js index 24a1646364..3cf324b1d8 100644 --- a/client/modules/crm/src/views/calendar/timeline.js +++ b/client/modules/crm/src/views/calendar/timeline.js @@ -725,12 +725,17 @@ define('crm:views/calendar/timeline', ['view', 'lib!vis'], function (Dep, Vis) { view.render(); view.notify(false); - this.listenToOnce(view, 'after:destroy', (model) => { + this.listenToOnce(view, 'after:destroy', (m) => { this.runFetch(); }); - this.listenToOnce(view, 'after:save', (model) => { - view.close(); + this.listenTo(view, 'after:save', (m, o) => { + o = o || {}; + + if (!o.bypassClose) { + view.close(); + } + this.runFetch(); }); }); diff --git a/client/src/views/modals/detail.js b/client/src/views/modals/detail.js index 6b8cd98370..b237aaa2f7 100644 --- a/client/src/views/modals/detail.js +++ b/client/src/views/modals/detail.js @@ -559,10 +559,10 @@ define('views/modals/detail', ['views/modal', 'helpers/action-item-setup'], func this.remove(); }); - this.listenTo(view, 'after:save', (model) => { + this.listenTo(view, 'after:save', (model, o) => { this.model.set(model.getClonedAttributes()); - this.trigger('after:save', model); + this.trigger('after:save', model, o); this.controlRecordButtonsVisibility(); this.trigger('model-sync'); diff --git a/client/src/views/modals/edit.js b/client/src/views/modals/edit.js index 3aae7b723e..7614690a44 100644 --- a/client/src/views/modals/edit.js +++ b/client/src/views/modals/edit.js @@ -266,7 +266,7 @@ define('views/modals/edit', ['views/modal'], function (Dep) { this.id = model.id; } - this.trigger('after:save', model); + this.trigger('after:save', model, {bypassClose: data.bypassClose}); if (!data.bypassClose) { this.dialog.close();