You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.6 KiB
44 lines
1.6 KiB
(function(){
|
|
|
|
"use strict";
|
|
|
|
var _t = openerp._t;
|
|
var _lt = openerp._lt;
|
|
var QWeb = openerp.qweb;
|
|
|
|
openerp.im_chat.Conversation.include({
|
|
escape_keep_url: function(str){
|
|
//var url_regex = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/gi;
|
|
var url_regex = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?|(<a)[^>]*href="([^"]*)"[^>]*>([^<]*)<\/a>)/gi;
|
|
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 href = '';
|
|
var content = '';
|
|
var is_odoo_ref = false;
|
|
if (result[8]=='<a'){
|
|
href = result[9];
|
|
if (href[0]=='#'){
|
|
href += '&rnd='+parseInt(Math.random()*1000);
|
|
content = result[10];
|
|
is_odoo_ref = true;
|
|
} else {
|
|
//only internal urls are allowed
|
|
href = '';
|
|
}
|
|
}else{
|
|
href = _.escape(result[0]);
|
|
content = href;
|
|
}
|
|
txt += '<a href="' + href + '"' + (is_odoo_ref?'':' target="_blank"')+'>' + content + '</a>';
|
|
}
|
|
txt += _.escape(str.slice(last, str.length));
|
|
return txt;
|
|
},
|
|
});
|
|
})();
|