|
|
@ -60,29 +60,31 @@ odoo.define('mail_move_message.relocate', function (require) { |
|
|
|
}, |
|
|
|
on_notification: function(notifications){ |
|
|
|
this._super(notifications); |
|
|
|
var self = this; |
|
|
|
_.each(notifications, function (notification) { |
|
|
|
var model = notification[0][1]; |
|
|
|
var message_id = notification[1].message_ids[0]; |
|
|
|
if (model === 'mail_move_message') { |
|
|
|
var message = base_obj.chat_manager.get_message(message_id); |
|
|
|
|
|
|
|
if (model === 'mail_move_message') { |
|
|
|
// Mark message as moved after move and for update cache
|
|
|
|
message.is_moved = notification[1].values.is_moved; |
|
|
|
// Update cache and accordingly message in the thread
|
|
|
|
chat_manager.mail_tools.add_to_cache(message, []); |
|
|
|
self.add_to_cache(message, []); |
|
|
|
// Call ChatAction.on_update_message(message)
|
|
|
|
chat_manager.bus.trigger('update_message', message); |
|
|
|
} else if (model === 'mail_move_message.delete_message') { |
|
|
|
chat_manager.get_messages( |
|
|
|
// TODO: получить channel.id и this.domain
|
|
|
|
{channel_id: this.channel.id, domain: this.domain} |
|
|
|
).then(function (messages) { |
|
|
|
var options = self.get_thread_rendering_options(messages); |
|
|
|
thread.remove_message_and_render(message_id, messages, options) |
|
|
|
.then(function () { |
|
|
|
self.update_button_status(messages.length === 0); |
|
|
|
}); |
|
|
|
// Remove message from cache
|
|
|
|
_.each(message.channel_ids, function (channel_id) { |
|
|
|
var channel = chat_manager.get_channel(channel_id); |
|
|
|
if (channel) { |
|
|
|
var channel_cache = self.get_channel_cache(channel, []); |
|
|
|
var index = _.sortedIndex(channel_cache.messages, message, 'id'); |
|
|
|
if (channel_cache.messages[index] === message) { |
|
|
|
channel_cache.messages.splice(index, 1); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
chat_manager.bus.trigger('update_message', message); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|