diff options
| author | Christophe Simonis <chs@odoo.com> | 2016-02-02 14:52:15 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2016-02-02 14:52:15 +0100 |
| commit | 469e04e97c2aa60d9d41bd430e0aeba77ee6f9dd (patch) | |
| tree | 0119f59009274d2c569920432c9a7fabafde0974 /addons/mail/static/src/js/thread.js | |
| parent | 78d20b552b4374b94aec7097c0e6a48a3dd2d961 (diff) | |
| parent | 2611a8198eaac60cf424742e4dc411700e439352 (diff) | |
[MERGE] forward port of branch saas-8 up to 2611a81
Diffstat (limited to 'addons/mail/static/src/js/thread.js')
| -rw-r--r-- | addons/mail/static/src/js/thread.js | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/addons/mail/static/src/js/thread.js b/addons/mail/static/src/js/thread.js index 439b1a8beb3..aee712ea905 100644 --- a/addons/mail/static/src/js/thread.js +++ b/addons/mail/static/src/js/thread.js @@ -38,9 +38,9 @@ var Thread = Widget.extend({ "click .oe_mail_expand": function (event) { event.preventDefault(); event.stopPropagation(); - var $source = $(event.currentTarget); - $source.parents('.o_thread_message_core').find('.o_mail_body_short').toggle(); - $source.parents('.o_thread_message_core').find('.o_mail_body_long').toggle(); + var $message = $(event.currentTarget).parents('.o_thread_message'); + $message.addClass('o_message_expanded'); + this.expanded_msg_ids.push($message.data('message-id')); }, }, @@ -55,9 +55,12 @@ var Thread = Widget.extend({ shorten_messages: true, squash_close_messages: true, }); + this.expanded_msg_ids = []; }, render: function (messages, options) { + clearTimeout(this.auto_render_timeout); + var self = this; var msgs = _.map(messages, this._preprocess_message.bind(this)); if (this.options.display_order === ORDER.DESC) { msgs.reverse(); @@ -83,6 +86,12 @@ var Thread = Widget.extend({ options: options, ORDER: ORDER, })); + + this.auto_render_timeout = setTimeout(function () { + if (!self.isDestroyed()) { + self.render(messages, options); + } + }, 1000*60); // re-render the thread every minute to update dates }, on_click_redirect: function (event) { @@ -110,7 +119,7 @@ var Thread = Widget.extend({ _preprocess_message: function (message) { var msg = _.extend({}, message); - // Set the date in the browser timezone + msg.date = moment.min(msg.date, moment()); var date = msg.date.format('YYYY-MM-DD'); if (date === moment().format('YYYY-MM-DD')) { @@ -124,7 +133,11 @@ var Thread = Widget.extend({ msg.hour = msg.date.format('LT'); } - msg.display_subject = message.subject && message.message_type !== 'notification' && !(message.model && (message.model !== 'mail.channel')); + if (_.contains(this.expanded_msg_ids, message.id)) { + msg.expanded = true; + } + + msg.display_subject = message.subject && !message.is_system_notification; return msg; }, |
