export function brLinkyFilter()

in ui-modules/app-inspector/app/components/config-sensor-table/config-sensor-table.directive.js [143:163]


export function brLinkyFilter($filter, $state, $sanitize) {
    // render links as html, and everything else as not html.
    return function(input, key, target, attributes) {
        if (input == null) {
            return '';
        } else if (angular.isObject(key) && key.isObject) {
            return asJsonIfJson(input, false, true, $sanitize) || $filter('linky')(angular.toJson(input), target, attributes);
        } else if (!angular.isString(input)) {
            return asJsonIfJson(input, false, false, $sanitize) || $filter('linky')(angular.toJson(input), target, attributes);
        } else if (angular.isObject(key) && angular.isString(key.name) && (key.name.indexOf('ssh') > -1 || isSensitiveFieldName(key.name))) {
            return input;
        } else if (angular.isObject(key) && key.links && key.links.hasOwnProperty('action:open')) {
            let matches = key.links['action:open'].match(/\#\/v1\/applications\/([^\/]+)\/entities\/([^\/]+)/i);
            return matches !== null ?
                $sanitize('<a href="' + $state.href('main.inspect.summary', {applicationId: matches[1], entityId: matches[2]}) + '">' + input + '</a>') :
                $filter('linky')(input, target, attributes);
        } else {
            return asJsonIfJson(input, true, false, $sanitize) || $filter('linky')(input, target, attributes);
        }
    }
}