Triggers panel refactor.

This commit is contained in:
Alexander Zobnin
2016-04-14 12:40:54 +03:00
parent 272259598e
commit 6639ebef80
4 changed files with 37 additions and 87 deletions

View File

@@ -13,6 +13,7 @@
import _ from 'lodash';
import moment from 'moment';
import * as utils from '../datasource-zabbix/utils';
import {MetricsPanelCtrl} from 'app/plugins/sdk';
import {triggerPanelEditor} from './editor';
import './css/panel_triggers.css!';
@@ -90,15 +91,15 @@ class TriggerPanelCtrl extends MetricsPanelCtrl {
// ignore fetching data if another panel is in fullscreen
if (this.otherPanelInFullscreenMode()) { return; }
this.refreshData();
}
refreshData() {
// clear loading/error state
delete this.error;
this.loading = true;
this.setTimeQueryStart();
this.refreshData();
}
refreshData() {
var self = this;
// Load datasource
@@ -210,8 +211,9 @@ class TriggerPanelCtrl extends MetricsPanelCtrl {
// Limit triggers number
self.triggerList = _.first(triggerList, self.panel.limit);
this.setTimeQueryEnd();
this.loading = false;
// Notify panel that request is finished
self.setTimeQueryEnd();
self.loading = false;
});
});
});
@@ -230,9 +232,9 @@ class TriggerPanelCtrl extends MetricsPanelCtrl {
TriggerPanelCtrl.templateUrl = 'panel-triggers/module.html';
function filterTriggers(triggers, triggerFilter) {
if (isRegex(triggerFilter)) {
if (utils.isRegex(triggerFilter)) {
return _.filter(triggers, function(trigger) {
return buildRegex(triggerFilter).test(trigger.description);
return utils.buildRegex(triggerFilter).test(trigger.description);
});
} else {
return _.filter(triggers, function(trigger) {
@@ -241,20 +243,6 @@ function filterTriggers(triggers, triggerFilter) {
}
}
function isRegex(str) {
// Pattern for testing regex
var regexPattern = /^\/(.*)\/([gmi]*)$/m;
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);
}
export {
TriggerPanelCtrl,
TriggerPanelCtrl as PanelCtrl