[release-12.1.2] Dashboard: Resume tracking changes after save from JSON model page (#109796)

Dashboard: Resume tracking changes after save from JSON model page (#109607)

(cherry picked from commit e285cc2ddc)

Co-authored-by: Bogdan Matei <bogdan.matei@grafana.com>
This commit is contained in:
Victor Marin
2025-08-19 10:27:57 +03:00
committed by GitHub
co-authored by Bogdan Matei
parent 0296c41a9d
commit 173f09ce0c
@@ -73,7 +73,7 @@ export class JsonModelEditView extends SceneObjectBase<JsonModelEditViewState> i
// FIXME: We could avoid this call by storing the entire dashboard DTO as initial dashboard scene instead of only the spec and metadata
const dto = await getDashboardAPI('v2').getDashboardDTO(result.uid);
newDashboardScene = transformSaveModelSchemaV2ToScene(dto);
const newState = sceneUtils.cloneSceneObjectState(newDashboardScene.state);
const newState = sceneUtils.cloneSceneObjectState(newDashboardScene.state, { key: dashboard.state.key });
dashboard.pauseTrackingChanges();
dashboard.setInitialSaveModel(dto.spec, dto.metadata);
@@ -84,7 +84,7 @@ export class JsonModelEditView extends SceneObjectBase<JsonModelEditViewState> i
dashboard: jsonModel,
meta: dashboard.state.meta,
});
const newState = sceneUtils.cloneSceneObjectState(newDashboardScene.state);
const newState = sceneUtils.cloneSceneObjectState(newDashboardScene.state, { key: dashboard.state.key });
dashboard.pauseTrackingChanges();
dashboard.setInitialSaveModel(jsonModel, dashboard.state.meta);
@@ -92,6 +92,9 @@ export class JsonModelEditView extends SceneObjectBase<JsonModelEditViewState> i
}
this.setState({ jsonText: this.getJsonText() });
// We also need to resume tracking changes since the change handler won't see any later edit
dashboard.resumeTrackingChanges();
};
static Component = ({ model }: SceneComponentProps<JsonModelEditView>) => {