ryan 6 лет назад
Родитель
Сommit
0c086795e3

+ 4 - 1
public/app/features/dashboard/state/PanelModel.ts

@@ -257,7 +257,10 @@ export class PanelModel {
 
     // Callback that can validate and migrate any existing settings
     if (hook) {
-      Object.assign(this.options, hook(this.options || {}, oldPluginId, oldOptions.options));
+      this.options = this.options || {};
+      const old = oldOptions ? oldOptions.options : null;
+
+      Object.assign(this.options, hook(this.options, oldPluginId, old));
     }
   }
 

+ 4 - 2
public/app/plugins/panel/bargauge/module.tsx

@@ -8,8 +8,10 @@ export const reactPanel = new ReactPanelPlugin<BarGaugeOptions>(BarGaugePanel);
 
 reactPanel.setEditor(BarGaugePanelEditor);
 reactPanel.setDefaults(defaults);
-reactPanel.setPanelTypeChangedHook((options: BarGaugeOptions, prevPluginId: string, prevOptions: any) => {
-  if (prevOptions.valueOptions) {
+reactPanel.setPanelTypeChangedHook((options: BarGaugeOptions, prevPluginId?: string, prevOptions?: any) => {
+  console.log('BAR Gauge', options, prevPluginId, prevOptions);
+
+  if (prevOptions && prevOptions.valueOptions) {
     options.valueOptions = prevOptions.valueOptions;
     options.thresholds = prevOptions.thresholds;
     options.maxValue = prevOptions.maxValue;

+ 4 - 2
public/app/plugins/panel/gauge/module.tsx

@@ -8,8 +8,10 @@ export const reactPanel = new ReactPanelPlugin<GaugeOptions>(GaugePanel);
 
 reactPanel.setEditor(GaugePanelEditor);
 reactPanel.setDefaults(defaults);
-reactPanel.setPanelTypeChangedHook((options: GaugeOptions, prevPluginId: string, prevOptions: any) => {
-  if (prevOptions.valueOptions) {
+reactPanel.setPanelTypeChangedHook((options: GaugeOptions, prevPluginId?: string, prevOptions?: any) => {
+  console.log('BAR Gauge', options, prevPluginId, prevOptions);
+
+  if (prevOptions && prevOptions.valueOptions) {
     options.valueOptions = prevOptions.valueOptions;
     options.thresholds = prevOptions.thresholds;
     options.maxValue = prevOptions.maxValue;