Gauge Panel: fix the default value of thresholds cannot be modified (#20190)

* Panel: fix the default value of thresholds cannot be modified in Gauge panel

* Panel: fix the default value of thresholds cannot be modified in Gauge panel
This commit is contained in:
lzd
2019-11-08 09:46:53 +01:00
committed by Dominik Prokop
parent be2bf1a297
commit f2415a319e
2 changed files with 16 additions and 1 deletions
@@ -24,6 +24,7 @@ describe('PanelModel', () => {
},
],
},
arrayWith2Values: [{ value: 'name' }, { value: 'name2' }],
showThresholds: true,
};
@@ -43,6 +44,7 @@ describe('PanelModel', () => {
},
],
},
arrayWith2Values: [{ name: 'changed to only one value' }],
};
modelJson = {
@@ -72,6 +74,10 @@ describe('PanelModel', () => {
expect(model.getOptions().showThresholds).toBeTruthy();
});
it('should apply option defaults but not override if array is changed', () => {
expect(model.getOptions().arrayWith2Values.length).toBe(1);
});
it('should set model props on instance', () => {
expect(model.showColumns).toBe(true);
});
@@ -255,7 +255,16 @@ export class PanelModel {
if (plugin.angularConfigCtrl) {
return;
}
this.options = _.defaultsDeep({}, this.options || {}, plugin.defaults);
this.options = _.mergeWith(
{},
plugin.defaults,
this.options || {},
(objValue: any, srcValue: any): any => {
if (_.isArray(srcValue)) {
return srcValue;
}
}
);
}
pluginLoaded(plugin: PanelPlugin) {