diff --git a/src/datasource-zabbix/css/query-editor.css b/src/datasource-zabbix/css/query-editor.css
index 5bf1cdb..3edd27d 100644
--- a/src/datasource-zabbix/css/query-editor.css
+++ b/src/datasource-zabbix/css/query-editor.css
@@ -1,3 +1,7 @@
.zbx-regex {
color: #CCA300;
}
+
+.zbx-variable {
+ color: #33B5E5;
+}
diff --git a/src/datasource-zabbix/partials/query.editor.html b/src/datasource-zabbix/partials/query.editor.html
index 5c89d6e..72f6b73 100644
--- a/src/datasource-zabbix/partials/query.editor.html
+++ b/src/datasource-zabbix/partials/query.editor.html
@@ -94,7 +94,10 @@
data-min-length=0
data-items=100
class="input-medium tight-form-input"
- ng-class="{'zbx-regex': ctrl.isRegex(ctrl.target.group.filter)}">
+ ng-class="{
+ 'zbx-variable': ctrl.isVariable(ctrl.target.group.filter),
+ 'zbx-regex': ctrl.isRegex(ctrl.target.group.filter)
+ }">
@@ -108,7 +111,10 @@
data-min-length=0
data-items=100
class="input-large tight-form-input"
- ng-class="{'zbx-regex': ctrl.isRegex(ctrl.target.host.filter)}">
+ ng-class="{
+ 'zbx-variable': ctrl.isVariable(ctrl.target.host.filter),
+ 'zbx-regex': ctrl.isRegex(ctrl.target.host.filter)
+ }">
Show disabled items
@@ -155,7 +161,10 @@
data-min-length=0
data-items=100
class="input-medium tight-form-input"
- ng-class="{'zbx-regex': ctrl.isRegex(ctrl.target.application.filter)}">
+ ng-class="{
+ 'zbx-variable': ctrl.isVariable(ctrl.target.application.filter),
+ 'zbx-regex': ctrl.isRegex(ctrl.target.application.filter)
+ }">
@@ -169,7 +178,10 @@
data-min-length=0
data-items=100
class="input-large tight-form-input"
- ng-class="{'zbx-regex': ctrl.isRegex(ctrl.target.item.filter)}">
+ ng-class="{
+ 'zbx-variable': ctrl.isVariable(ctrl.target.item.filter),
+ 'zbx-regex': ctrl.isRegex(ctrl.target.item.filter)
+ }">
Options
diff --git a/src/datasource-zabbix/query.controller.js b/src/datasource-zabbix/query.controller.js
index cd06a2c..3e270e1 100644
--- a/src/datasource-zabbix/query.controller.js
+++ b/src/datasource-zabbix/query.controller.js
@@ -182,6 +182,18 @@ export class ZabbixQueryController extends QueryCtrl {
return utils.isRegex(str);
}
+ isVariable(str) {
+ var variablePattern = /^\$\w+/;
+ if (variablePattern.test(str)) {
+ var variables = _.map(this.templateSrv.variables, variable => {
+ return '$' + variable.name;
+ });
+ return _.contains(variables, str);
+ } else {
+ return false;
+ }
+ }
+
onTargetBlur() {
var newTarget = _.cloneDeep(this.target);
if (!_.isEqual(this.oldTarget, this.target)) {