From 951145dd1a171c94336a5fb2e972d9fae277fdf8 Mon Sep 17 00:00:00 2001 From: Arnaud Joset <arj@odoo.com> Date: Fri, 19 Feb 2021 09:55:06 +0000 Subject: [PATCH] [IMP] web: avoid losing selection when a new quick create dialog is opended. Before this commit, the datetime range selection was lost when the quick create dialog was opened. closes odoo/odoo#64948 Taskid: 2342252 Related: odoo/enterprise#15915 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com> --- .../js/views/calendar/calendar_quick_create.js | 16 +++++++++++++++- .../src/js/views/calendar/calendar_renderer.js | 5 ----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/addons/web/static/src/js/views/calendar/calendar_quick_create.js b/addons/web/static/src/js/views/calendar/calendar_quick_create.js index 59ea21c42874..f6132c5364e1 100644 --- a/addons/web/static/src/js/views/calendar/calendar_quick_create.js +++ b/addons/web/static/src/js/views/calendar/calendar_quick_create.js @@ -32,7 +32,7 @@ var QuickCreate = Dialog.extend({ init: function (parent, buttons, options, dataTemplate, dataCalendar) { this._buttons = buttons || false; this.options = options; - + this.parentCalendar = parent; // Can hold data pre-set from where you clicked on agenda this.dataTemplate = dataTemplate || {}; this.dataCalendar = dataCalendar; @@ -67,6 +67,20 @@ var QuickCreate = Dialog.extend({ this.$('input').focus(); }, + destroy: function () { + // On quick create, remaining dialogs may be closed. We avoid to lose the selection for new quickcreate + // by checking that the dialog is not already destroyed. + if (!this.isDestroyed()) { + // remove selection when the dialog is closed + if (this.parentCalendar.renderer.state.scale === 'year') { + this.parentCalendar.renderer.calendar.view.unselect(); + } else { + this.parentCalendar.renderer.calendar.unselect(); + } + } + this._super.apply(this, arguments); + }, + //-------------------------------------------------------------------------- // Private //-------------------------------------------------------------------------- diff --git a/addons/web/static/src/js/views/calendar/calendar_renderer.js b/addons/web/static/src/js/views/calendar/calendar_renderer.js index 6c0efb6ff965..23bb6885c28f 100644 --- a/addons/web/static/src/js/views/calendar/calendar_renderer.js +++ b/addons/web/static/src/js/views/calendar/calendar_renderer.js @@ -381,11 +381,6 @@ return AbstractRenderer.extend({ data.title = this.state.context.default_name; } this.trigger_up('openCreate', this._convertEventToFC3Event(data)); - if (this.state.scale === 'year') { - this.calendar.view.unselect(); - } else { - this.calendar.unselect(); - } }, /** * Return the Object options for FullCalendar -- GitLab