diff options
| author | Géry Debongnie <ged@odoo.com> | 2015-10-21 10:00:05 +0200 |
|---|---|---|
| committer | Géry Debongnie <ged@odoo.com> | 2015-10-22 14:43:14 +0200 |
| commit | e2dc7b27eef0e48c25768fd3c0f81bbd89a2b1bb (patch) | |
| tree | 3bf098b6ebcf7f0542132530c78e969ee76a9b32 /addons/mail/static/src/js/chat_manager.js | |
| parent | 1dbeac3e5a6c3bba0caa54df20603d77704f90cd (diff) | |
[IMP] mail: add link to origin channel from message
Diffstat (limited to 'addons/mail/static/src/js/chat_manager.js')
| -rw-r--r-- | addons/mail/static/src/js/chat_manager.js | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/addons/mail/static/src/js/chat_manager.js b/addons/mail/static/src/js/chat_manager.js index 51598896654..783ee6b0c14 100644 --- a/addons/mail/static/src/js/chat_manager.js +++ b/addons/mail/static/src/js/chat_manager.js @@ -32,7 +32,7 @@ function add_message (data, options) { var msg = _.findWhere(messages, { id: data.id }); if (!msg) { - msg = make_message(data, options.channel_id); + msg = make_message(data); // Keep the array ordered by date when inserting the new message messages.splice(_.sortedIndex(messages, msg, 'date'), 0, msg); if (options.channel_id) { @@ -59,13 +59,11 @@ function add_message (data, options) { if (!options.silent) { chat_manager.bus.trigger('new_message', msg); } - } else if (msg && options.channel_id !== undefined) { - add_channel_to_message(msg, options.channel_id); } return msg; } -function make_message (data, channel_id) { +function make_message (data) { var msg = { id: data.id, author_id: data.author_id, @@ -78,7 +76,7 @@ function make_message (data, channel_id) { email_from: data.email_from, record_name: data.record_name, tracking_value_ids: data.tracking_value_ids, - channel_ids: (channel_id !== undefined ? [channel_id] : []), + channel_ids: data.channel_ids, model: data.model, res_id: data.res_id, }; @@ -116,6 +114,13 @@ function make_message (data, channel_id) { if (_.contains(data.starred_partner_ids, session.partner_id)) { msg.is_starred = true; } + var real_channels = _.without(msg.channel_ids, 'channel_inbox', 'channel_starred'); + var origin = real_channels.length ? real_channels[0] : undefined; + var channel; + if (origin && (channel = _.findWhere(channels, {id: origin}))) { + msg.origin_id = origin; + msg.origin_name = channel.name; + } return msg; } |
