summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/js/chat_manager.js
diff options
context:
space:
mode:
authorDamien Bouvy <dbo@odoo.com>2016-09-05 14:48:37 +0200
committerDamien Bouvy <dbo@odoo.com>2016-09-06 08:52:57 +0200
commit29d8576b0a9e41b922489e193ae4bb32e0b30fad (patch)
tree478aacad827510d844bf5c9e6bbadfc8185f0c87 /addons/mail/static/src/js/chat_manager.js
parentb9e31f132f92b27c07727706f083a6aeeb18b1df (diff)
[FIX] mail: remove duplicate code
There already is a redirect implementation in the chat_manager which closely matches the on_redirect implementation in chatter.js, however the former has the advantage of calling get_formview_id to ensure that the view is correct. This fixes a faulty behaviour when some models are referenced from chatter message using data attribute data-oe-model and data-oe-id. For example, linking invoices in the chatter would always open them with the 'vendor invoice' view; from this revision on the correct view will be used (assuming get_formview_id is implemented on the model). The default behaviour of the chat_manager when a user clicks on a partner record is to open a channel if the partner has a user then return a callback passed as a parameter (usually to open the channel as a popup or in the discuss app). To keep the old behaviour of the chatter followers list widget (i.e. open the partner form when clicking on a follower), a small change has to be made on the redirect implementation: when no callback is provided, do not create the channel (instead a returning an empty callback).
Diffstat (limited to 'addons/mail/static/src/js/chat_manager.js')
-rw-r--r--addons/mail/static/src/js/chat_manager.js6
1 files changed, 3 insertions, 3 deletions
diff --git a/addons/mail/static/src/js/chat_manager.js b/addons/mail/static/src/js/chat_manager.js
index 2cf6090871f..dbadbb47bb9 100644
--- a/addons/mail/static/src/js/chat_manager.js
+++ b/addons/mail/static/src/js/chat_manager.js
@@ -936,9 +936,9 @@ var chat_manager = {
if (res_model === "res.partner") {
var domain = [["partner_id", "=", res_id]];
UserModel.call("search", [domain]).then(function (user_ids) {
- if (user_ids.length && user_ids[0] !== session.uid) {
- self.create_channel(res_id, 'dm').then(dm_redirection_callback || function () {});
- } else if (!user_ids.length) {
+ if (user_ids.length && user_ids[0] !== session.uid && dm_redirection_callback) {
+ self.create_channel(res_id, 'dm').then(dm_redirection_callback);
+ } else {
redirect_to_document(res_model, res_id);
}
});