Let the cached props from previous visualization be the masters, unless specified in keepLatestProps const

This commit is contained in:
Johannes Schill 2018-12-04 14:39:56 +01:00
parent 1ad4b44ec1
commit b8c6577626
1 changed files with 8 additions and 2 deletions

View File

@ -55,6 +55,12 @@ const mustKeepProps: { [str: string]: boolean } = {
cachedPluginOptions: true,
};
// Keep current option value when switching visualization
const keepLatestProps: { [str: string]: boolean } = {
title: true,
description: true,
};
const defaults: any = {
gridPos: { x: 0, y: 0, h: 3, w: 6 },
datasource: null,
@ -209,11 +215,11 @@ export class PanelModel {
restorePanelOptions(pluginId: string) {
const currentOptions = this.getPanelOptions();
const prevOptions = this.cachedPluginOptions[pluginId];
const prevOptions = this.cachedPluginOptions[pluginId] || {};
const newOptions = Object.keys(prevOptions).reduce((acc, currKey: string) => {
return {
...acc,
[currKey]: currentOptions[currKey] || prevOptions[currKey],
[currKey]: keepLatestProps[currKey] ? currentOptions[currKey] : prevOptions[currKey],
};
}, {});