[v9.5.x] Dashboard: Fix library panels in collapsed rows not getting updated (#68536)

Dashboard: Fix library panels in collapsed rows not getting updated (#66643)

(cherry picked from commit f478504bc9)

Co-authored-by: Victor Colomb <51762123+VictorColomb@users.noreply.github.com>
(cherry picked from commit 5e2559597a)
This commit is contained in:
Grot (@grafanabot)
2023-07-10 15:31:46 +03:00
committed by dsotirakis
parent 284c43c23d
commit 865c308e11
2 changed files with 41 additions and 0 deletions
@@ -195,6 +195,27 @@ describe('PanelModel', () => {
expect(saveModel.events).toBe(undefined);
});
it('getSaveModel should clean libraryPanels from a collapsed row', () => {
const newmodelJson = {
type: 'row',
panels: [
{
...modelJson,
libraryPanel: {
uid: 'BVIBScisnl',
model: modelJson,
name: 'Library panel title',
},
},
modelJson,
],
};
const newmodel = new PanelModel(newmodelJson);
const saveModel = newmodel.getSaveModel();
expect(saveModel.panels[0].tagrets).toBe(undefined);
expect(saveModel.panels[1].targets).toBeTruthy();
});
describe('variables interpolation', () => {
beforeEach(() => {
model.scopedVars = {
@@ -310,6 +310,26 @@ export class PanelModel implements DataConfigSource, IPanelModel {
model[property] = cloneDeep(this[property]);
}
// clean libraryPanel from collapsed rows
if (this.type === 'row' && this.panels && this.panels.length > 0) {
model.panels = this.panels.map((panel) => {
if (panel.libraryPanel) {
const { id, title, libraryPanel, gridPos } = panel;
return {
id,
title,
gridPos,
libraryPanel: {
uid: libraryPanel.uid,
name: libraryPanel.name,
},
};
}
return panel;
});
}
return model;
}