mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Added clickable urls to table row details view
This commit is contained in:
parent
d1495fbf6e
commit
78dbf58536
@ -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, '<').
|
||||||
|
replace(/>/g, '>').
|
||||||
|
replace(/'/g, ''').
|
||||||
|
replace(/"/g, '"');
|
||||||
|
};
|
||||||
|
}).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;
|
||||||
|
};
|
||||||
});
|
});
|
@ -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>
|
||||||
|
Loading…
Reference in New Issue
Block a user