diff options
| author | Didier (did) <did@odoo.com> | 2020-11-25 10:06:02 +0000 |
|---|---|---|
| committer | Didier (did) <did@odoo.com> | 2020-12-02 10:28:51 +0000 |
| commit | 7a57cf0b68b3a1dce4276c6456a94b05eec20f28 (patch) | |
| tree | 738db5008f744bb1cfcdad02d29da5b5383f87db | |
| parent | 1e5eba693bd17ef9202ecd298bf24e2e68133616 (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.xml | 4 | ||||
| -rw-r--r-- | addons/mail/static/src/models/thread/thread.js | 25 |
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(), }; |
