Skip to content

Commit

Permalink
Closes #477, closes #464. Also fixes urlLink and noXml filters on arr…
Browse files Browse the repository at this point in the history
…ay fields
  • Loading branch information
Rashid Khan committed Sep 11, 2013
1 parent 1304029 commit 7ab2a53
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 19 deletions.
56 changes: 38 additions & 18 deletions js/filters.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,18 +32,23 @@ angular.module('kibana.filters', [])
return arr.toString();
}
};

}).filter('noXml', function() {
return function(text) {
if(!_.isString(text)) {
return text;
}
return text.
var noXml = function(text) {
return _.isString(text) ?
text.
replace(/&/g, '&').
replace(/</g, '&lt;').
replace(/>/g, '&gt;').
replace(/'/g, '&#39;').
replace(/"/g, '&quot;');
replace(/"/g, '&quot;') :
text;
};
return function(text) {
return _.isArray(text) ?
_.map(text,function(t) {
return noXml(t);
}) :
noXml(text);
};
}).filter('urlLink', function() {
var //URLs starting with http://, https://, or ftp://
Expand All @@ -53,20 +58,35 @@ angular.module('kibana.filters', [])
//Change email addresses to mailto:: links.
r3 = /(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})/gim;

return function(text, target, otherProp) {
var urlLink = function(text) {
var t1,t2,t3;
if(!_.isString(text)) {
return text;
} else {
var i=1;
_.each(text.match(r1), function(url) {
t1 = text.replace(r1, "<a href=\"$1\" target=\"_blank\">$1</a>");
});
text = t1 || text;
_.each(text.match(r2), function(url) {
t2 = text.replace(r2, "$1<a href=\"http://$2\" target=\"_blank\">$2</a>");
});
text = t2 || text;
_.each(text.match(r3), function(url) {
t3 = text.replace(r3, "<a href=\"mailto:$1\">$1</a>");
});
text = t3 || 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;
};

return function(text, target, otherProp) {

return _.isArray(text) ?
_.map(text,function(t) {
return urlLink(t);
}) :
urlLink(text);
};
}).filter('gistid', function() {
var gist_pattern = /(\d{5,})|([a-z0-9]{10,})|(gist.github.com(\/*.*)\/[a-z0-9]{5,}\/*$)/;
Expand Down
2 changes: 1 addition & 1 deletion panels/table/module.html
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ <h5>Fields <i class=" icon-chevron-sign-left pointer " ng-click="panel.field_lis
<i class='icon-ban-circle pointer' ng-click="build_search(key,value,true)"></i>
</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>
<td style="white-space:pre-wrap" ng-bind-html-unsafe="value|noXml|urlLink|stringify"></td>
</tr>
</table>
</td>
Expand Down
1 change: 1 addition & 0 deletions panels/table/module.js
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,7 @@ angular.module('kibana.table', [])


})
// This also escapes some xml sequences
.filter('tableHighlight', function() {
return function(text) {
if (!_.isUndefined(text) && !_.isNull(text) && text.toString().length > 0) {
Expand Down

0 comments on commit 7ab2a53

Please sign in to comment.