diff --git a/public/app/features/plugins/datasource_srv.ts b/public/app/features/plugins/datasource_srv.ts index 32cc1b0deef..6483056f97b 100644 --- a/public/app/features/plugins/datasource_srv.ts +++ b/public/app/features/plugins/datasource_srv.ts @@ -244,11 +244,15 @@ export class DatasourceSrv implements DataSourceService { if (filters.variables) { for (const variable of this.templateSrv.getVariables()) { - if (variable.type !== 'datasource' || variable.multi || variable.includeAll) { + if (variable.type !== 'datasource') { continue; } - const dsName = variable.current.value === 'default' ? this.defaultName : variable.current.value; - const dsSettings = !Array.isArray(dsName) && this.settingsMapByName[dsName]; + let dsValue = variable.current.value === 'default' ? this.defaultName : variable.current.value; + if (Array.isArray(dsValue) && dsValue.length === 1) { + // Support for multi-value variables with only one selected datasource + dsValue = dsValue[0]; + } + const dsSettings = !Array.isArray(dsValue) && this.settingsMapByName[dsValue]; if (dsSettings) { const key = `$\{${variable.name}\}`; diff --git a/public/app/features/variables/guard.ts b/public/app/features/variables/guard.ts index f6097fc5f35..524e959d061 100644 --- a/public/app/features/variables/guard.ts +++ b/public/app/features/variables/guard.ts @@ -25,7 +25,6 @@ import { VariableQueryEditorProps, VariableWithMultiSupport, VariableWithOptions, - DataSourceVariableModel, } from './types'; /** @deprecated use a if (model.type === "query") type narrowing check instead */ @@ -43,10 +42,6 @@ export const isConstant = (model: VariableModel): model is ConstantVariableModel return model.type === 'constant'; }; -export const isDataSource = (model: VariableModel): model is DataSourceVariableModel => { - return model.type === 'datasource'; -}; - export const isMulti = (model: VariableModel): model is VariableWithMultiSupport => { const withMulti = model as VariableWithMultiSupport; return withMulti.hasOwnProperty('multi') && typeof withMulti.multi === 'boolean';