Commit 78dbf585 by Rashid Khan

Added clickable urls to table row details view

parent d1495fbf
...@@ -32,4 +32,40 @@ angular.module('kibana.filters', []) ...@@ -32,4 +32,40 @@ angular.module('kibana.filters', [])
return arr.toString(); return arr.toString();
} }
}; };
}).filter('noXml', function() {
return function(text) {
if(!_.isString(text)) {
return text;
}
return text.
replace(/&/g, '&').
replace(/</g, '&lt;').
replace(/>/g, '&gt;').
replace(/'/g, '&#39;').
replace(/"/g, '&quot;');
};
}).filter('urlLink', function() {
var //URLs starting with http://, https://, or ftp://
r1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim,
//URLs starting with "www." (without // before it, or it'd re-link the ones done above).
r2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim,
//Change email addresses to mailto:: links.
r3 = /(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})/gim;
return function(text, target, otherProp) {
if(!_.isString(text)) {
return text;
}
_.each(text.match(r1), function(url) {
text = text.replace(r1, "<a href=\"$1\" target=\"_blank\">$1</a>");
});
_.each(text.match(r2), function(url) {
text = text.replace(r2, "$1<a href=\"http://$2\" target=\"_blank\">$2</a>");
});
_.each(text.match(r3), function(url) {
text = text.replace(r3, "<a href=\"mailto:$1\">$1</a>");
});
return text;
};
}); });
\ No newline at end of file
...@@ -74,7 +74,8 @@ ...@@ -74,7 +74,8 @@
<i class='icon-search pointer' ng-click="build_search(key,value)"></i> <i class='icon-search pointer' ng-click="build_search(key,value)"></i>
<i class='icon-ban-circle pointer' ng-click="build_search(key,value,true)"></i> <i class='icon-ban-circle pointer' ng-click="build_search(key,value,true)"></i>
</td> </td>
<td style="white-space:pre-wrap">{{value}}</td> <!-- At some point we need to create a more efficient way of applying the filter pipeline -->
<td style="white-space:pre-wrap" ng-bind-html-unsafe="value|noXml|urlLink"></td>
</tr> </tr>
</table> </table>
</td> </td>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment