summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDidier (did) <did@odoo.com>2020-11-25 10:06:02 +0000
committerDidier (did) <did@odoo.com>2020-12-02 10:28:51 +0000
commit7a57cf0b68b3a1dce4276c6456a94b05eec20f28 (patch)
tree738db5008f744bb1cfcdad02d29da5b5383f87db
parent1e5eba693bd17ef9202ecd298bf24e2e68133616 (diff)
[FIX] mail: set href on notification link.
This allow the user to open link in new tabs with middle click task-2387837 closes odoo/odoo#62304 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
-rw-r--r--addons/mail/static/src/components/message/message.xml4
-rw-r--r--addons/mail/static/src/models/thread/thread.js25
2 files changed, 27 insertions, 2 deletions
diff --git a/addons/mail/static/src/components/message/message.xml b/addons/mail/static/src/components/message/message.xml
index 92ed8c85813..f38e0109f18 100644
--- a/addons/mail/static/src/components/message/message.xml
+++ b/addons/mail/static/src/components/message/message.xml
@@ -82,10 +82,10 @@
<t t-if="threadView and message.originThread and message.originThread !== threadView.thread">
<div class="o_Message_originThread" t-att-class="{ 'o-message-selected': props.isSelected }">
<t t-if="message.originThread.model === 'mail.channel'">
- (from <a class="o_Message_originThreadLink" href="#" t-on-click="_onClickOriginThread">#<t t-esc="message.originThread.name"/></a>)
+ (from <a class="o_Message_originThreadLink" t-att-href="message.originThread.url" t-on-click="_onClickOriginThread">#<t t-esc="message.originThread.name"/></a>)
</t>
<t t-else="">
- on <a class="o_Message_originThreadLink" href="#" t-on-click="_onClickOriginThread"><t t-esc="message.originThread.name"/></a>
+ on <a class="o_Message_originThreadLink" t-att-href="message.originThread.url" t-on-click="_onClickOriginThread"><t t-esc="message.originThread.name"/></a>
</t>
</div>
</t>
diff --git a/addons/mail/static/src/models/thread/thread.js b/addons/mail/static/src/models/thread/thread.js
index bb23735c62e..e692f00fe87 100644
--- a/addons/mail/static/src/models/thread/thread.js
+++ b/addons/mail/static/src/models/thread/thread.js
@@ -1402,6 +1402,20 @@ function factory(dependencies) {
}
/**
+ * Compute an url string that can be used inside a href attribute
+ *
+ * @private
+ * @returns {string}
+ */
+ _computeUrl() {
+ const baseHref = this.env.session.url('/web');
+ if (this.model === 'mail.channel') {
+ return `${baseHref}#action=mail.action_discuss&active_id=${this.model}_${this.id}`;
+ }
+ return `${baseHref}#model=${this.model}&id=${this.id}`;
+ }
+
+ /**
* @private
* @param {Object} param0
* @param {boolean} param0.isTyping
@@ -2086,6 +2100,17 @@ function factory(dependencies) {
default: '',
dependencies: ['orderedOtherTypingMembers'],
}),
+ /**
+ * URL to access to the conversation.
+ */
+ url: attr({
+ compute: '_computeUrl',
+ default: '',
+ dependencies: [
+ 'id',
+ 'model',
+ ]
+ }),
uuid: attr(),
};