From 9e8afef9ef6c44d700f68a1c5c3b70fe71bb663e Mon Sep 17 00:00:00 2001 From: "grafana-delivery-bot[bot]" <132647405+grafana-delivery-bot[bot]@users.noreply.github.com> Date: Mon, 13 Nov 2023 17:19:46 +0200 Subject: [PATCH] [v10.2.x] Dashboards: Fix issue causing crashes when saving new dashboard (#77641) * Dashboards: Fix issue causing crashes when saving new dashboard (#77620) Closes #77593 (cherry picked from commit c98add6e5a1653f3c0b494704c63807bcbe744e3) * Test fix --------- Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com> Co-authored-by: Dominik Prokop --- .betterer.results | 7 ++++--- .../components/DashboardPrompt/DashboardPrompt.tsx | 5 +++++ .../app/features/dashboard/components/GenAI/utils.test.ts | 8 ++++---- .../dashboard/state/__fixtures__/dashboardFixtures.ts | 1 + 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.betterer.results b/.betterer.results index fe705e6ab85..230da2f44fa 100644 --- a/.betterer.results +++ b/.betterer.results @@ -3121,9 +3121,10 @@ exports[`better eslint`] = { [0, 0, 0, "Do not use any type assertions.", "2"], [0, 0, 0, "Do not use any type assertions.", "3"], [0, 0, 0, "Do not use any type assertions.", "4"], - [0, 0, 0, "Unexpected any. Specify a different type.", "5"], - [0, 0, 0, "Do not use any type assertions.", "6"], - [0, 0, 0, "Unexpected any. Specify a different type.", "7"] + [0, 0, 0, "Do not use any type assertions.", "5"], + [0, 0, 0, "Unexpected any. Specify a different type.", "6"], + [0, 0, 0, "Do not use any type assertions.", "7"], + [0, 0, 0, "Unexpected any. Specify a different type.", "8"] ], "public/app/features/dashboard/components/DashboardRow/DashboardRow.test.tsx:5381": [ [0, 0, 0, "Unexpected any. Specify a different type.", "0"] diff --git a/public/app/features/dashboard/components/DashboardPrompt/DashboardPrompt.tsx b/public/app/features/dashboard/components/DashboardPrompt/DashboardPrompt.tsx index c5602a8cc44..8956e55afd2 100644 --- a/public/app/features/dashboard/components/DashboardPrompt/DashboardPrompt.tsx +++ b/public/app/features/dashboard/components/DashboardPrompt/DashboardPrompt.tsx @@ -146,6 +146,11 @@ export function ignoreChanges(current: DashboardModel | null, original: object | return true; } + // Ignore changes if original is unsaved + if ((original as DashboardModel).version === 0) { + return true; + } + // Ignore changes if the user has been signed out if (!contextSrv.isSignedIn) { return true; diff --git a/public/app/features/dashboard/components/GenAI/utils.test.ts b/public/app/features/dashboard/components/GenAI/utils.test.ts index cf3c4672c44..321675fcebc 100644 --- a/public/app/features/dashboard/components/GenAI/utils.test.ts +++ b/public/app/features/dashboard/components/GenAI/utils.test.ts @@ -47,19 +47,19 @@ describe('getDashboardChanges', () => { ' "graphTooltip": 0,\n' + '- "schemaVersion": 37,\n' + '+ "schemaVersion": 38,\n' + + ' "version": 1,\n' + ' "timezone": "",\n' + ' "panels": [\n' + ' {\n' + - ' "type": "timeseries",\n' + - ' "title": "Panel 1",\n' + ' "type": "timeseries",\n' ); expect(result.userChanges).toEqual( '===================================================================\n' + '--- Before user changes\t\n' + '+++ After user changes\t\n' + - '@@ -3,16 +3,17 @@\n' + - ' "graphTooltip": 0,\n' + + '@@ -4,16 +4,17 @@\n' + ' "schemaVersion": 38,\n' + + ' "version": 1,\n' + ' "timezone": "",\n' + ' "panels": [\n' + ' {\n' + diff --git a/public/app/features/dashboard/state/__fixtures__/dashboardFixtures.ts b/public/app/features/dashboard/state/__fixtures__/dashboardFixtures.ts index d1c6f323c5a..c4259b5eb09 100644 --- a/public/app/features/dashboard/state/__fixtures__/dashboardFixtures.ts +++ b/public/app/features/dashboard/state/__fixtures__/dashboardFixtures.ts @@ -22,6 +22,7 @@ export function createDashboardModelFixture( editable: true, graphTooltip: defaultDashboardCursorSync, schemaVersion: 1, + version: 1, timezone: '', ...dashboardInput, };