PanelEdit: Hide multi-/all-select datasource variables in datasource picker (#52142)

ivana/hints-improvement
eledobleefe 3 years ago committed by GitHub
parent 3617eac5f3
commit 332639ce43
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      public/app/features/plugins/datasource_srv.ts
  2. 5
      public/app/features/variables/guard.ts

@ -24,7 +24,7 @@ import {
instanceSettings as expressionInstanceSettings,
} from 'app/features/expressions/ExpressionDatasource';
import { DataSourceVariableModel } from '../variables/types';
import { isDataSource } from '../variables/guard';
import { importDataSourcePlugin } from './plugin_loader';
@ -245,11 +245,12 @@ export class DatasourceSrv implements DataSourceService {
});
if (filters.variables) {
for (const variable of this.templateSrv.getVariables().filter((variable) => variable.type === 'datasource')) {
const dsVar = variable as DataSourceVariableModel;
const first = dsVar.current.value === 'default' ? this.defaultName : dsVar.current.value;
const dsName = first as unknown as string;
const dsSettings = this.settingsMapByName[dsName];
for (const variable of this.templateSrv.getVariables()) {
if (!isDataSource(variable) || variable.multi || variable.includeAll) {
continue;
}
const dsName = variable.current.value === 'default' ? this.defaultName : variable.current.value;
const dsSettings = !Array.isArray(dsName) && this.settingsMapByName[dsName];
if (dsSettings) {
const key = `$\{${variable.name}\}`;

@ -25,6 +25,7 @@ import {
VariableQueryEditorProps,
VariableWithMultiSupport,
VariableWithOptions,
DataSourceVariableModel,
} from './types';
export const isQuery = (model: VariableModel): model is QueryVariableModel => {
@ -39,6 +40,10 @@ 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';

Loading…
Cancel
Save