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

This commit is contained in:
Victor Colomb 2023-05-16 13:44:19 +02:00 committed by GitHub
parent 3ab1706145
commit f478504bc9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 41 additions and 0 deletions

View File

@ -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 = {

View File

@ -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;
}