Added url detection

bzr revid: nicolas.vanhoren@openerp.com-20130903135940-3miafvmwtiiuc769
This commit is contained in:
niv-openerp 2013-09-03 15:59:40 +02:00
parent 6c6169da1b
commit 0c03661b56
2 changed files with 21 additions and 3 deletions

View File

@ -443,8 +443,8 @@ function declare($, _, openerp) {
return new Array(size - str.length + 1).join('0') + str;
};
date = "" + zpad(date.getHours(), 2) + ":" + zpad(date.getMinutes(), 2);
this.last_bubble = $(openerp.qweb.render("im_common.conversation_bubble", {"items": items, "user": user, "time": date}));
var to_show = _.map(items, im_common.escape_keep_url);
this.last_bubble = $(openerp.qweb.render("im_common.conversation_bubble", {"items": to_show, "user": user, "time": date}));
$(this.$(".oe_im_chatview_content").children()[0]).append(this.last_bubble);
this._go_bottom();
},
@ -484,6 +484,24 @@ function declare($, _, openerp) {
});
};
var url_regex = /(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/gi;
im_common.escape_keep_url = function(str) {
var last = 0;
var txt = "";
while (true) {
var result = url_regex.exec(str);
if (! result)
break;
txt += _.escape(str.slice(last, result.index));
last = url_regex.lastIndex;
var url = _.escape(result[0]);
txt += '<a href="' + url + '">' + url + '</a>';
}
txt += str.slice(last, str.length);
return txt;
};
return im_common;
}

View File

@ -33,7 +33,7 @@
<div class="oe_im_chatview_from"><t t-esc="user.get('name')"/></div>
<div class="oe_im_chatview_bubble_list">
<t t-foreach="items" t-as="item">
<div class="oe_im_chatview_bubble_item"><t t-esc="item"/></div>
<div class="oe_im_chatview_bubble_item"><t t-raw="item"/></div>
</t>
</div>
<div class="oe_im_chatview_time"><t t-esc="time"/></div>