1
1
import React , { useState } from 'react' ;
2
- import { SelectableValue } from '@grafana/data' ;
2
+ import { SelectableValue , VariableWithMultiSupport } from '@grafana/data' ;
3
3
import { RadioButtonGroup , ConfirmModal } from '@grafana/ui' ;
4
4
import { getQueryOptionsFromSql , getSQLFromQueryOptions } from './queryBuilder/utils' ;
5
5
import { selectors } from './../selectors' ;
6
6
import { QuestDBQuery , QueryType , defaultBuilderQuery , SqlBuilderOptions , QuestDBSQLQuery } from 'types' ;
7
7
import { isString } from 'lodash' ;
8
- import { Datasource } from "../data/QuestDbDatasource" ;
8
+ import { Datasource } from '../data/QuestDbDatasource' ;
9
+ import { getTemplateSrv } from '@grafana/runtime' ;
9
10
10
11
interface QueryTypeSwitcherProps {
11
12
query : QuestDBQuery ;
@@ -26,6 +27,8 @@ export const QueryTypeSwitcher = ({ query, onChange, datasource }: QueryTypeSwit
26
27
{ label : queryTypeLabels . QueryBuilder , value : QueryType . Builder } ,
27
28
] ;
28
29
const [ errorMessage , setErrorMessage ] = useState < string > ( '' ) ;
30
+ const templateVars = getTemplateSrv ( ) . getVariables ( ) as VariableWithMultiSupport [ ] ;
31
+
29
32
async function onQueryTypeChange ( queryType : QueryType , confirm = false ) {
30
33
if ( query . queryType === QueryType . SQL && queryType === QueryType . Builder && ! confirm ) {
31
34
const queryOptionsFromSql = await getQueryOptionsFromSql ( query . rawSql ) ;
@@ -43,7 +46,9 @@ export const QueryTypeSwitcher = ({ query, onChange, datasource }: QueryTypeSwit
43
46
builderOptions = query . builderOptions ;
44
47
break ;
45
48
case QueryType . SQL :
46
- builderOptions = ( await getQueryOptionsFromSql ( query . rawSql , datasource ) as SqlBuilderOptions ) || defaultBuilderQuery . builderOptions ;
49
+ builderOptions =
50
+ ( ( await getQueryOptionsFromSql ( query . rawSql , datasource ) ) as SqlBuilderOptions ) ||
51
+ defaultBuilderQuery . builderOptions ;
47
52
break ;
48
53
default :
49
54
builderOptions = defaultBuilderQuery . builderOptions ;
@@ -53,13 +58,13 @@ export const QueryTypeSwitcher = ({ query, onChange, datasource }: QueryTypeSwit
53
58
onChange ( {
54
59
...query ,
55
60
queryType,
56
- rawSql : getSQLFromQueryOptions ( builderOptions ) ,
61
+ rawSql : getSQLFromQueryOptions ( builderOptions , templateVars ) ,
57
62
meta : { builderOptions } ,
58
63
format : query . format ,
59
64
selectedFormat : query . selectedFormat ,
60
65
} ) ;
61
66
} else if ( queryType === QueryType . Builder ) {
62
- onChange ( { ...query , queryType, rawSql : getSQLFromQueryOptions ( builderOptions ) , builderOptions } ) ;
67
+ onChange ( { ...query , queryType, rawSql : getSQLFromQueryOptions ( builderOptions , templateVars ) , builderOptions } ) ;
63
68
}
64
69
}
65
70
}
0 commit comments