Filter triggers by description.

This commit is contained in:
Alexander Zobnin
2016-02-03 14:31:39 +03:00
parent d4ea5d5b32
commit a08529faa1

View File

@@ -174,6 +174,12 @@ function (angular, app, _, $, config, PanelMeta) {
}
});
// Filter triggers by description
var triggerFilter = $scope.panel.triggers.trigger.filter;
if (triggerFilter) {
triggerList = filterTriggers(triggerList, triggerFilter);
}
// Filter acknowledged triggers
if ($scope.panel.showTriggers === 'unacknowledged') {
$scope.triggerList = _.filter(triggerList, function (trigger) {
@@ -204,7 +210,6 @@ function (angular, app, _, $, config, PanelMeta) {
$scope.filterGroups();
$scope.filterHosts();
$scope.filterApplications();
//$scope.filterItems();
};
// Get list of metric names for bs-typeahead directive
@@ -240,6 +245,18 @@ function (angular, app, _, $, config, PanelMeta) {
});
};
function filterTriggers(triggers, triggerFilter) {
if (isRegex(triggerFilter)) {
return _.filter(triggers, function(trigger) {
return buildRegex(triggerFilter).test(trigger.description);
});
} else {
return _.filter(triggers, function(trigger) {
return trigger.description === triggerFilter;
});
}
}
$scope.onTargetPartChange = function(targetPart) {
var regexStyle = {'color': '#CCA300'};
targetPart.isRegex = isRegex(targetPart.filter);
@@ -252,6 +269,14 @@ function (angular, app, _, $, config, PanelMeta) {
return regexPattern.test(str);
}
function buildRegex(str) {
var regexPattern = /^\/(.*)\/([gmi]*)$/m;
var matches = str.match(regexPattern);
var pattern = matches[1];
var flags = matches[2] !== "" ? matches[2] : undefined;
return new RegExp(pattern, flags);
}
$scope.parseTarget = function() {
$scope.initFilters();
var newTarget = _.cloneDeep($scope.panel.triggers);