Filter triggers by description.
This commit is contained in:
@@ -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
|
// Filter acknowledged triggers
|
||||||
if ($scope.panel.showTriggers === 'unacknowledged') {
|
if ($scope.panel.showTriggers === 'unacknowledged') {
|
||||||
$scope.triggerList = _.filter(triggerList, function (trigger) {
|
$scope.triggerList = _.filter(triggerList, function (trigger) {
|
||||||
@@ -204,7 +210,6 @@ function (angular, app, _, $, config, PanelMeta) {
|
|||||||
$scope.filterGroups();
|
$scope.filterGroups();
|
||||||
$scope.filterHosts();
|
$scope.filterHosts();
|
||||||
$scope.filterApplications();
|
$scope.filterApplications();
|
||||||
//$scope.filterItems();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Get list of metric names for bs-typeahead directive
|
// 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) {
|
$scope.onTargetPartChange = function(targetPart) {
|
||||||
var regexStyle = {'color': '#CCA300'};
|
var regexStyle = {'color': '#CCA300'};
|
||||||
targetPart.isRegex = isRegex(targetPart.filter);
|
targetPart.isRegex = isRegex(targetPart.filter);
|
||||||
@@ -252,6 +269,14 @@ function (angular, app, _, $, config, PanelMeta) {
|
|||||||
return regexPattern.test(str);
|
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.parseTarget = function() {
|
||||||
$scope.initFilters();
|
$scope.initFilters();
|
||||||
var newTarget = _.cloneDeep($scope.panel.triggers);
|
var newTarget = _.cloneDeep($scope.panel.triggers);
|
||||||
|
|||||||
Reference in New Issue
Block a user