From d095cb4e04adb1aec574b1e5b7c88adceae2dba1 Mon Sep 17 00:00:00 2001 From: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com> Date: Wed, 7 May 2025 16:07:39 +0100 Subject: [PATCH] AutoGridLayoutManager: Preserve variableName when switching between auto and custom grids (#104856) preserve variableName when switching between auto and custom grids --- .../scene/layout-auto-grid/AutoGridLayoutManager.tsx | 4 +++- .../scene/layout-default/DefaultGridLayoutManager.tsx | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/public/app/features/dashboard-scene/scene/layout-auto-grid/AutoGridLayoutManager.tsx b/public/app/features/dashboard-scene/scene/layout-auto-grid/AutoGridLayoutManager.tsx index 310603190f4..1d3e6b80ab3 100644 --- a/public/app/features/dashboard-scene/scene/layout-auto-grid/AutoGridLayoutManager.tsx +++ b/public/app/features/dashboard-scene/scene/layout-auto-grid/AutoGridLayoutManager.tsx @@ -15,6 +15,7 @@ import { getPanelIdForVizPanel, getVizPanelKeyForPanelId, } from '../../utils/utils'; +import { DashboardGridItem } from '../layout-default/DashboardGridItem'; import { clearClipboard, getAutoGridItemFromClipboard } from '../layouts-shared/paste'; import { DashboardLayoutManager } from '../types/DashboardLayoutManager'; import { LayoutRegistryItem } from '../types/LayoutRegistryItem'; @@ -261,7 +262,8 @@ export class AutoGridLayoutManager const children: AutoGridItem[] = []; for (let panel of panels) { - children.push(new AutoGridItem({ body: panel.clone() })); + const variableName = panel.parent instanceof DashboardGridItem ? panel.parent.state.variableName : undefined; + children.push(new AutoGridItem({ body: panel.clone(), variableName })); } const layoutManager = AutoGridLayoutManager.createEmpty(); diff --git a/public/app/features/dashboard-scene/scene/layout-default/DefaultGridLayoutManager.tsx b/public/app/features/dashboard-scene/scene/layout-default/DefaultGridLayoutManager.tsx index e5b00abc627..fd4cd95efb6 100644 --- a/public/app/features/dashboard-scene/scene/layout-default/DefaultGridLayoutManager.tsx +++ b/public/app/features/dashboard-scene/scene/layout-default/DefaultGridLayoutManager.tsx @@ -40,6 +40,7 @@ import { getLayoutOrchestratorFor, getDashboardSceneFor, } from '../../utils/utils'; +import { AutoGridItem } from '../layout-auto-grid/AutoGridItem'; import { CanvasGridAddActions } from '../layouts-shared/CanvasGridAddActions'; import { clearClipboard, getDashboardGridItemFromClipboard } from '../layouts-shared/paste'; import { DashboardLayoutManager } from '../types/DashboardLayoutManager'; @@ -490,6 +491,8 @@ export class DefaultGridLayoutManager let currentX = 0; for (let panel of panels) { + const variableName = panel.parent instanceof AutoGridItem ? panel.parent.state.variableName : undefined; + panel.clearParent(); children.push( @@ -499,7 +502,9 @@ export class DefaultGridLayoutManager y: currentY, width: panelWidth, height: panelHeight, + itemHeight: panelHeight, body: panel, + variableName, }) );