diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js
index 2f28ea12705..98df2ceec7f 100644
--- a/addons/mail/static/src/js/mail.js
+++ b/addons/mail/static/src/js/mail.js
@@ -28,6 +28,19 @@ openerp.mail = function(session) {
this._super.apply(this, arguments);
/* bind buttons */
this.$element.find('button.oe_mail_button_comment').bind('click', function () { self.do_comment(); });
+ /* delegate links */
+ self.$element.find('div.oe_mail_thread_display').delegate('a', 'click', function (event) {
+ //console.log(event);
+ var res_model = event.srcElement.dataset.resModel;
+ var res_id = event.srcElement.dataset.resId;
+ self.do_action({
+ type: 'ir.actions.act_window',
+ res_model: res_model,
+ res_id: parseInt(res_id),
+ //context: context,
+ views: [[false, 'form']]
+ });
+ });
/* display user, fetch comments */
this.display_current_user();
this.fetch_comments();
@@ -70,13 +83,26 @@ openerp.mail = function(session) {
do_replace_internal_links: function (string) {
var self = this;
- var regex = new RegExp(/(^|\s)@(\w*[a-zA-Z_]+\w*)\.(\w+[a-zA-Z_]+\w*),(\d+)/g);
- var regex_res = regex.exec(string);
+ /* internal links: @sale.order,32 */
+ var regex_intlink = new RegExp(/(^|\s)@(\w*[a-zA-Z_]+\w*)\.(\w+[a-zA-Z_]+\w*),(\d+)/g);
+ var regex_res = regex_intlink.exec(string);
while (regex_res != null) {
- var class_name = regex_res[2] + '_' + regex_res[3] + '_' + regex_res[4];
- string = string.replace(regex_res[0], '' + regex_res[1] + '' + class_name + '');
- regex_res = regex.exec(string);
+ var res_model = regex_res[2] + '.' + regex_res[3];
+ var res_id = regex_res[4];
+ string = string.replace(regex_res[0], '' + regex_res[1] + ''
+ + res_model + '(' + res_id + ')');
+ regex_res = regex_intlink.exec(string);
}
+ /* shortcut to user: @login */
+ //var regex_login = new RegExp(/(^|\s)@(\w*[a-zA-Z_.]+\w*)/g);
+ //var regex_res = regex_login.exec(string);
+ //while (regex_res != null) {
+ //var res_model = regex_res[2] + '.' + regex_res[3];
+ //var res_id = regex_res[4];
+ //string = string.replace(regex_res[0], '' + regex_res[1] + ''
+ //+ res_model + '(' + res_id + ')');
+ //regex_res = regex_intlink.exec(string);
+ //}
return string;
},