Dashboard: Migration Fixes Mixed data source losing existing queries (#86883)

This commit is contained in:
Alexa V
2024-04-25 13:06:57 +02:00
committed by GitHub
parent cd724d74aa
commit e711d10925
2 changed files with 11 additions and 6 deletions
@@ -2,7 +2,7 @@ import React from 'react';
import { CoreApp, DataSourceApi, DataSourceInstanceSettings, IconName } from '@grafana/data';
import { selectors } from '@grafana/e2e-selectors';
import { config } from '@grafana/runtime';
import { config, getDataSourceSrv } from '@grafana/runtime';
import { SceneObjectBase, SceneComponentProps, sceneGraph, SceneQueryRunner } from '@grafana/scenes';
import { DataQuery } from '@grafana/schema';
import { Button, HorizontalGroup, Tab } from '@grafana/ui';
@@ -120,7 +120,15 @@ export class PanelDataQueriesTab extends SceneObjectBase<PanelDataQueriesTabStat
newQuery(): Partial<DataQuery> {
const { dsSettings, datasource } = this._panelManager.state;
const ds = !dsSettings?.meta.mixed ? dsSettings : datasource;
let ds;
if (!dsSettings?.meta.mixed) {
ds = dsSettings; // Use dsSettings if it is not mixed
} else if (!datasource?.meta.mixed) {
ds = datasource; // Use datasource if dsSettings is mixed but datasource is not
} else {
// Use default datasource if both are mixed or just datasource is mixed
ds = getDataSourceSrv().getInstanceSettings(config.defaultDatasource);
}
return {
...datasource?.getDefaultQuery?.(CoreApp.PanelEditor),
@@ -141,10 +141,7 @@ export class VizPanelManager extends SceneObjectBase<VizPanelManagerState> {
}
if (datasource && dsSettings) {
this.setState({
datasource,
dsSettings,
});
this.setState({ datasource, dsSettings });
storeLastUsedDataSourceInLocalStorage(
{