diff --git a/public/app/features/dashboard/dashboard_model.ts b/public/app/features/dashboard/dashboard_model.ts index 33843b55480..072b38fba22 100644 --- a/public/app/features/dashboard/dashboard_model.ts +++ b/public/app/features/dashboard/dashboard_model.ts @@ -145,7 +145,10 @@ export class DashboardModel { }; // get panel save models - copy.panels = _.map(this.panels, panel => panel.getSaveModel()); + copy.panels = _.chain(this.panels) + .filter(panel => panel.type !== 'add-panel') + .map(panel => panel.getSaveModel()) + .value(); // sort by keys copy = sortByKeys(copy); diff --git a/public/app/features/dashboard/specs/dashboard_model.jest.ts b/public/app/features/dashboard/specs/dashboard_model.jest.ts index d1671331660..99fe727c49d 100644 --- a/public/app/features/dashboard/specs/dashboard_model.jest.ts +++ b/public/app/features/dashboard/specs/dashboard_model.jest.ts @@ -49,6 +49,23 @@ describe('DashboardModel', function() { expect(keys[0]).toBe('annotations'); expect(keys[1]).toBe('autoUpdate'); }); + + it('should remove add panel panels', () => { + var model = new DashboardModel({}); + model.addPanel({ + type: 'add-panel', + }); + model.addPanel({ + type: 'graph', + }); + model.addPanel({ + type: 'add-panel', + }); + var saveModel = model.getSaveModelClone(); + var panels = saveModel.panels; + + expect(panels.length).toBe(1); + }); }); describe('row and panel manipulation', function() {