TransformSaveModelToScene: Force v1 for reports (#114767)
force v1 for reports
This commit is contained in:
@@ -441,7 +441,7 @@ export class DashboardScenePageStateManager extends DashboardScenePageStateManag
|
||||
}
|
||||
|
||||
if (rsp?.dashboard) {
|
||||
const scene = transformSaveModelToScene(rsp);
|
||||
const scene = transformSaveModelToScene(rsp, options);
|
||||
|
||||
// Special handling for Template route - set up edit mode and dirty state
|
||||
if (
|
||||
|
||||
@@ -29,11 +29,11 @@ import {
|
||||
} from 'app/features/dashboard/services/DashboardProfiler';
|
||||
import { DashboardModel } from 'app/features/dashboard/state/DashboardModel';
|
||||
import { PanelModel } from 'app/features/dashboard/state/PanelModel';
|
||||
import { DashboardDTO, DashboardDataDTO } from 'app/types/dashboard';
|
||||
import { DashboardDTO, DashboardDataDTO, DashboardRoutes } from 'app/types/dashboard';
|
||||
|
||||
import { addPanelsOnLoadBehavior } from '../addToDashboard/addPanelsOnLoadBehavior';
|
||||
import { dashboardAnalyticsInitializer } from '../behaviors/DashboardAnalyticsInitializerBehavior';
|
||||
import { shouldForceV2API } from '../pages/DashboardScenePageStateManager';
|
||||
import { LoadDashboardOptions, shouldForceV2API } from '../pages/DashboardScenePageStateManager';
|
||||
import { AlertStatesDataLayer } from '../scene/AlertStatesDataLayer';
|
||||
import { DashboardAnnotationsDataLayer } from '../scene/DashboardAnnotationsDataLayer';
|
||||
import { DashboardControls } from '../scene/DashboardControls';
|
||||
@@ -76,11 +76,11 @@ export interface SaveModelToSceneOptions {
|
||||
isEmbedded?: boolean;
|
||||
}
|
||||
|
||||
export function transformSaveModelToScene(rsp: DashboardDTO): DashboardScene {
|
||||
export function transformSaveModelToScene(rsp: DashboardDTO, options?: LoadDashboardOptions): DashboardScene {
|
||||
// Just to have migrations run
|
||||
const oldModel = new DashboardModel(rsp.dashboard, rsp.meta);
|
||||
|
||||
const scene = createDashboardSceneFromDashboardModel(oldModel, rsp.dashboard);
|
||||
const scene = createDashboardSceneFromDashboardModel(oldModel, rsp.dashboard, options);
|
||||
// TODO: refactor createDashboardSceneFromDashboardModel to work on Dashboard schema model
|
||||
|
||||
const apiVersion = config.featureToggles.kubernetesDashboards
|
||||
@@ -255,12 +255,17 @@ function createRowItemFromLegacyRow(row: PanelModel, panels: DashboardGridItem[]
|
||||
return rowItem;
|
||||
}
|
||||
|
||||
export function createDashboardSceneFromDashboardModel(oldModel: DashboardModel, dto: DashboardDataDTO) {
|
||||
export function createDashboardSceneFromDashboardModel(
|
||||
oldModel: DashboardModel,
|
||||
dto: DashboardDataDTO,
|
||||
options?: LoadDashboardOptions
|
||||
) {
|
||||
let variables: SceneVariableSet | undefined;
|
||||
let annotationLayers: SceneDataLayerProvider[] = [];
|
||||
let alertStatesLayer: AlertStatesDataLayer | undefined;
|
||||
const uid = oldModel.uid;
|
||||
const serializerVersion = shouldForceV2API() && !oldModel.meta.isSnapshot ? 'v2' : 'v1';
|
||||
const isReport = options?.route === DashboardRoutes.Report;
|
||||
const serializerVersion = shouldForceV2API() && !oldModel.meta.isSnapshot && !isReport ? 'v2' : 'v1';
|
||||
|
||||
if (oldModel.meta.isSnapshot) {
|
||||
variables = createVariablesForSnapshot(oldModel);
|
||||
@@ -348,7 +353,7 @@ export function createDashboardSceneFromDashboardModel(oldModel: DashboardModel,
|
||||
|
||||
let body: DashboardLayoutManager;
|
||||
|
||||
if (config.featureToggles.dashboardNewLayouts && oldModel.panels.some((p) => p.type === 'row')) {
|
||||
if (serializerVersion === 'v2' && oldModel.panels.some((p) => p.type === 'row')) {
|
||||
body = createRowsFromPanels(oldModel.panels);
|
||||
} else {
|
||||
body = new DefaultGridLayoutManager({
|
||||
|
||||
Reference in New Issue
Block a user