feat(templating): completed work on templating as data source, closes #816

This commit is contained in:
Torkel Ödegaard 2016-04-28 19:31:43 +02:00
parent 7349427189
commit 8b4c7c94b8
4 changed files with 9 additions and 5 deletions

View File

@ -2,6 +2,7 @@
### Enhancements
* **Singlestat**: Support for gauges in singlestat panel. closes [#3688](https://github.com/grafana/grafana/pull/3688)
* **Templating**: Support for data source as variable, closes [#816](https://github.com/grafana/grafana/pull/816)
### Bug fixes
* **InfluxDB 0.12**: Fixed issue templating and `show tag values` query only returning tags for first measurement, fixes [#4726](https://github.com/grafana/grafana/issues/4726)

View File

@ -102,8 +102,8 @@ function (angular, _, coreModule, config) {
if (ds) {
metricSources.push({
name: '[[' + variable.name + ']]',
value: '[[' + variable.name + ']]',
name: '$' + variable.name,
value: '$' + variable.name,
meta: ds.meta,
});
}

View File

@ -19,7 +19,7 @@ function (angular, _, coreModule) {
if (_.isString(options)) {
this.value = options;
this.html = $sce.trustAsHtml(this.value);
this.html = $sce.trustAsHtml(templateSrv.highlightVariablesAsHtml(this.value));
return;
}

View File

@ -63,7 +63,9 @@ function (angular, _, kbn) {
// determine our dependencies.
if (variable.type === "query") {
_.forEach(this.variables, function(v) {
if (templateSrv.containsVariable(variable.query, v.name)) {
// both query and datasource can contain variable
if (templateSrv.containsVariable(variable.query, v.name) ||
templateSrv.containsVariable(variable.datasource, v.name)) {
dependencies.push(self.variableLock[v.name].promise);
}
});
@ -149,7 +151,8 @@ function (angular, _, kbn) {
if (otherVariable === updatedVariable) {
return;
}
if (templateSrv.containsVariable(otherVariable.query, updatedVariable.name)) {
if (templateSrv.containsVariable(otherVariable.query, updatedVariable.name) ||
templateSrv.containsVariable(otherVariable.datasource, updatedVariable.name)) {
return self.updateOptions(otherVariable);
}
});