From f5cb445b7ad4f62dd97010200570730ff01cc892 Mon Sep 17 00:00:00 2001 From: Alexander Zobnin Date: Fri, 16 Nov 2018 14:09:40 +0300 Subject: [PATCH] triggers: fix adding new panel --- src/panel-triggers/migrations.js | 7 ++++++- src/panel-triggers/specs/migrations.spec.js | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/panel-triggers/migrations.js b/src/panel-triggers/migrations.js index 8242c0c..ced88bb 100644 --- a/src/panel-triggers/migrations.js +++ b/src/panel-triggers/migrations.js @@ -6,6 +6,7 @@ export const CURRENT_SCHEMA_VERSION = 5; export function migratePanelSchema(panel) { if (isEmptyPanel(panel)) { + delete panel.targets; return panel; } @@ -47,5 +48,9 @@ function getSchemaVersion(panel) { } function isEmptyPanel(panel) { - return !panel.datasource && !panel.datasources && !panel.triggers && !panel.targets; + return !panel.datasource && !panel.datasources && !panel.triggers && isEmptyTargets(panel.targets); +} + +function isEmptyTargets(targets) { + return !targets || (_.isArray(targets) && (targets.length === 0 || targets.length === 1 && _.isEmpty(targets[0]))); } diff --git a/src/panel-triggers/specs/migrations.spec.js b/src/panel-triggers/specs/migrations.spec.js index b5c0541..38f6c37 100644 --- a/src/panel-triggers/specs/migrations.spec.js +++ b/src/panel-triggers/specs/migrations.spec.js @@ -74,4 +74,20 @@ describe('Triggers Panel schema migration', () => { }, PANEL_DEFAULTS); expect(updatedPanelCtrl.panel).toEqual(expected); }); + + it('should set default targets for new panel with empty targets', () => { + ctx.scope.panel = { + targets: [{}] + }; + let updatedPanelCtrl = new TriggerPanelCtrl(ctx.scope, {}, timeoutMock, datasourceSrvMock, {}, {}, {}); + + let expected = _.defaultsDeep({ + datasources: ['zabbix_default'], + targets: { + 'zabbix_default': DEFAULT_TARGET + }, + }, PANEL_DEFAULTS); + + expect(updatedPanelCtrl.panel).toEqual(expected); + }); });