diff --git a/src/datasource-zabbix/query.controller.js b/src/datasource-zabbix/query.controller.js index 6d295a0..9fd49c3 100644 --- a/src/datasource-zabbix/query.controller.js +++ b/src/datasource-zabbix/query.controller.js @@ -180,11 +180,8 @@ export class ZabbixQueryController extends QueryCtrl { * Check query for template variables */ isContainsVariables() { - var self = this; - return _.some(self.templateSrv.variables, variable => { - return _.some(['group', 'host', 'application', 'item'], field => { - return self.templateSrv.containsVariable(self.target[field].filter, variable.name); - }); + return _.some(['group', 'host', 'application'], field => { + return utils.isTemplateVariable(this.panel.triggers[field].filter, this.templateSrv.variables); }); } diff --git a/src/panel-triggers/editor.html b/src/panel-triggers/editor.html index ea3333c..ee1b24b 100644 --- a/src/panel-triggers/editor.html +++ b/src/panel-triggers/editor.html @@ -1,337 +1,256 @@
-
-
Select triggers
-
-
    -
  • - Group -
  • -
  • - -
  • -
  • - Host -
  • -
  • - -
  • -
-
+
+
Select triggers
+
+
+ + +
+
+ + +
-
-
    -
  • - Application -
  • -
  • - -
  • -
  • - Trigger -
  • -
  • - -
  • -
-
+ +
+
+ + +
+
+ + +
-
-
Data source
-
-
-
    -
  • - -
  • -
-
+ +
+
Data source
+
+
+
+ +
+
-
-
Options
-
-
-
    -
  • - Acknowledged -
  • -
  • - -
  • -
  • - Limit triggers number to -
  • -
  • - -
  • -
-
+
+
Options
+
+
+ +
+ +
-
-
    -
  • - Sort by -
  • -
  • - -
  • -
  • - Show events -
  • -
  • - -
  • -
-
+
+ +
-
-
    -
  • - Show fields -
  • -
  • - - - -
  • -
  • - - - -
  • -
  • - - - -
  • -
  • - - - -
  • -
-
+
+
+
+ +
+ +
-
-
    -
  • -   -
  • -
  • - - - -
  • -
  • - - - -
  • -
  • - - - -
  • -
-
-
- -
-
    -
  • - Custom Last change format - - - -
  • -
  • - -
  • -
  • - - - - -
  • -
-
+
+ +
+ +
-
-
Customize triggers severity and colors
-
-
+ +
+
+
Customize triggers severity and colors
+
+
+ + + - -
  • - - - -
  • - -
    +
    +
    + +
    -
    -
      -
    • - OK event color -
    • -
    • - - -
    • -
    -
    + +
    +
    + + + + + +
    -
    -
      -
    • - Acknowledged color -
    • -
    • - - -
    • -
    • - - - -
    • -
    -
    +
    +
    + + + + + +
    + +
    diff --git a/src/panel-triggers/editor.js b/src/panel-triggers/editor.js index faebb37..97d2b85 100644 --- a/src/panel-triggers/editor.js +++ b/src/panel-triggers/editor.js @@ -75,6 +75,7 @@ class TriggerPanelEditorCtrl { this.datasourceSrv.get(this.panel.datasource) .then(datasource => { this.datasource = datasource; + this.zabbix = datasource.zabbix; this.queryBuilder = datasource.queryBuilder; this.initFilters(); this.panelCtrl.refresh(); @@ -90,7 +91,7 @@ class TriggerPanelEditorCtrl { } suggestGroups() { - return this.queryBuilder.getAllGroups() + return this.zabbix.getAllGroups() .then(groups => { this.metric.groupList = groups; return groups; @@ -99,7 +100,7 @@ class TriggerPanelEditorCtrl { suggestHosts() { let groupFilter = this.datasource.replaceTemplateVars(this.panel.triggers.group.filter); - return this.queryBuilder.getAllHosts(groupFilter) + return this.zabbix.getAllHosts(groupFilter) .then(hosts => { this.metric.hostList = hosts; return hosts; @@ -109,7 +110,7 @@ class TriggerPanelEditorCtrl { suggestApps() { let groupFilter = this.datasource.replaceTemplateVars(this.panel.triggers.group.filter); let hostFilter = this.datasource.replaceTemplateVars(this.panel.triggers.host.filter); - return this.queryBuilder.getAllApps(groupFilter, hostFilter) + return this.zabbix.getAllApps(groupFilter, hostFilter) .then(apps => { this.metric.appList = apps; return apps; @@ -126,11 +127,8 @@ class TriggerPanelEditorCtrl { * Check query for template variables */ isContainsVariables() { - var self = this; - return _.some(self.templateSrv.variables, variable => { - return _.some(['group', 'host', 'application'], field => { - return self.templateSrv.containsVariable(self.panel.triggers[field].filter, variable.name); - }); + return _.some(['group', 'host', 'application'], field => { + return utils.isTemplateVariable(this.panel.triggers[field].filter, this.templateSrv.variables); }); } diff --git a/src/panel-triggers/module.js b/src/panel-triggers/module.js index 7ccbfd5..2218490 100644 --- a/src/panel-triggers/module.js +++ b/src/panel-triggers/module.js @@ -232,14 +232,15 @@ class TriggerPanelCtrl extends MetricsPanelCtrl { } acknowledgeTrigger(trigger, message) { - let self = this; let eventid = trigger.lastEvent.eventid; let grafana_user = this.contextSrv.user.name; let ack_message = grafana_user + ' (Grafana): ' + message; - return this.datasourceSrv.get(this.panel.datasource).then(datasource => { - let zabbix = datasource.zabbixAPI; - return zabbix.acknowledgeEvent(eventid, ack_message).then(() => { - self.refresh(); + return this.datasourceSrv.get(this.panel.datasource) + .then(datasource => { + let zabbixAPI = datasource.zabbix.zabbixAPI; + return zabbixAPI.acknowledgeEvent(eventid, ack_message) + .then(() => { + this.refresh(); }); }); }