Explore: Expand template variables when redirecting from dashboard panel (#19582)

* Fix redirect but adding getExploreState method to graphite

* Explore: Create interpolateVariablesInQueries function for datasources

* Explore: Add interpolateVariablesInQueries method to elasticsearch datasource

* Add interpolateVariablesInQueries function to influx and postgres

* Explore: Add interpolateVariablesInQueries to Mssql and Mysql datasources

* Explore: Add datasources to queries

* Explore: Code formatting

* Prettier formating fix

* Explore: Add rawQuery expanding of variables for influxdb

* Remove console.logs

* Explore: Add rawQuery expanding of multiple variables for influxdb

* Explore: If no queries in Influxdb, return early []

* Explore: Refactor influxDb to follow the code structure
This commit is contained in:
Ivana Huckova
2019-10-08 17:01:20 +02:00
committed by GitHub
parent 9904e14f8e
commit 90b0953620
14 changed files with 173 additions and 14 deletions

View File

@@ -5,6 +5,8 @@ import { BackendSrv } from 'app/core/services/backend_srv';
import { IQService } from 'angular';
import { TemplateSrv } from 'app/features/templating/template_srv';
import { TimeSrv } from 'app/features/dashboard/services/TimeSrv';
//Types
import { MysqlQueryForInterpolation } from './types';
export class MysqlDatasource {
id: any;
@@ -47,6 +49,21 @@ export class MysqlDatasource {
return quotedValues.join(',');
};
interpolateVariablesInQueries(queries: MysqlQueryForInterpolation[]): MysqlQueryForInterpolation[] {
let expandedQueries = queries;
if (queries && queries.length > 0) {
expandedQueries = queries.map(query => {
const expandedQuery = {
...query,
datasource: this.name,
rawSql: this.templateSrv.replace(query.rawSql, {}, this.interpolateVariable),
};
return expandedQuery;
});
}
return expandedQueries;
}
query(options: any) {
const queries = _.filter(options.targets, target => {
return target.hide !== true;

View File

@@ -0,0 +1,7 @@
export interface MysqlQueryForInterpolation {
alias?: any;
format?: any;
rawSql?: any;
refId?: any;
hide?: any;
}