diff options
Diffstat (limited to 'addons/mail/static/src/js')
4 files changed, 18 insertions, 27 deletions
diff --git a/addons/mail/static/src/js/discuss.js b/addons/mail/static/src/js/discuss.js index 44a915955da..3d8eda911be 100644 --- a/addons/mail/static/src/js/discuss.js +++ b/addons/mail/static/src/js/discuss.js @@ -940,6 +940,7 @@ var Discuss = AbstractAction.extend({ _setThread: function (threadID) { var self = this; + this.$('.o_out_of_office').remove(); // Store scroll position and composer state of the previous thread this._storeThreadState(); @@ -978,6 +979,13 @@ var Discuss = AbstractAction.extend({ // message self._unselectMessage(); + if (self._thread.hasOutOfOffice()) { + const $outOfOffice = $(QWeb.render('mail.thread.OutOfOffice', { + thread: self._thread + })); + $outOfOffice.prependTo(self.$('.o_mail_discuss_content')); + } + self.action_manager.do_push_state({ action: self.action.id, active_id: self._thread.getID(), diff --git a/addons/mail/static/src/js/models/threads/abstract_thread.js b/addons/mail/static/src/js/models/threads/abstract_thread.js index 192d0e58c93..6961ba48175 100644 --- a/addons/mail/static/src/js/models/threads/abstract_thread.js +++ b/addons/mail/static/src/js/models/threads/abstract_thread.js @@ -119,6 +119,12 @@ var AbstractThread = Class.extend(Mixins.EventDispatcherMixin, { return !_.isEmpty(this.getMessages()); }, /** + * @return {boolean} + */ + hasOutOfOffice() { + return !!(this.getOutOfOfficeMessage() || this.getOutOfOfficeInfo()); + }, + /** * States whether this thread is compatible with the 'seen' feature. * By default, threads do not have thsi feature active. * @see {mail.model.ThreadSeenMixin} to enable this feature on a thread. diff --git a/addons/mail/static/src/js/thread_windows/abstract_thread_window.js b/addons/mail/static/src/js/thread_windows/abstract_thread_window.js index d6a637a0552..27cb97e1f65 100644 --- a/addons/mail/static/src/js/thread_windows/abstract_thread_window.js +++ b/addons/mail/static/src/js/thread_windows/abstract_thread_window.js @@ -147,32 +147,10 @@ var AbstractThreadWindow = Widget.extend({ * @returns {mail.model.Thread|undefined} */ getThread: function () { - if (!this.hasThread) { - return undefined; - } - return this._thread; - }, - /** - *Get out of office info - * - * @returns {string|undefined} - */ - getOutOfOfficeInfo: function () { - if (!this.hasThread()) { - return undefined; - } - return this._thread.getOutOfOfficeInfo(); - }, - /** - * Get out of office user text - * - * @returns {string|undefined} - */ - getOutOfOfficeMessage: function () { if (!this.hasThread()) { return undefined; } - return this._thread.getOutOfOfficeMessage(); + return this._thread; }, /** * Get the status of the thread, such as the im status of a DM chat diff --git a/addons/mail/static/src/js/thread_windows/thread_window.js b/addons/mail/static/src/js/thread_windows/thread_window.js index 08671354a3e..8b4eb03d9db 100644 --- a/addons/mail/static/src/js/thread_windows/thread_window.js +++ b/addons/mail/static/src/js/thread_windows/thread_window.js @@ -148,15 +148,14 @@ var ThreadWindow = AbstractThreadWindow.extend({ }, renderOutOfOffice: function () { var $outOfOffice = this.$('.o_out_of_office'); - if (!this.getOutOfOfficeInfo() && !this.getOutOfOfficeMessage()) { + const thread = this.getThread(); + if (!thread.hasOutOfOffice()) { if ($outOfOffice.length) { $outOfOffice.remove(); } return; } - var $newOutOfOffice = $(QWeb.render('mail.thread_window.OutOfOffice', { - widget: this, - })); + const $newOutOfOffice = $(QWeb.render('mail.thread.OutOfOffice', { thread })); if ($outOfOffice.length) { $outOfOffice.replaceWith($newOutOfOffice); } else { |
