mirror of https://github.com/grafana/grafana
Merge pull request #16166 from ryantxu/drop-panel-plugin-setters
Refactor ReactPanelPlugin change hooks -> handler & add panel version to jsonpull/16183/head
commit
090b3f6c6d
@ -1,8 +1,6 @@ |
||||
import { ReactPanelPlugin } from '@grafana/ui'; |
||||
|
||||
import { GraphPanelEditor } from './GraphPanelEditor'; |
||||
import { GraphPanel } from './GraphPanel'; |
||||
import { Options } from './types'; |
||||
import { Options, defaults } from './types'; |
||||
|
||||
export const reactPanel = new ReactPanelPlugin<Options>(GraphPanel); |
||||
reactPanel.setEditor(GraphPanelEditor); |
||||
export const reactPanel = new ReactPanelPlugin<Options>(GraphPanel).setDefaults(defaults).setEditor(GraphPanelEditor); |
||||
|
@ -1,12 +1,8 @@ |
||||
import { ReactPanelPlugin } from '@grafana/ui'; |
||||
|
||||
import PieChartPanelEditor from './PieChartPanelEditor'; |
||||
import { PieChartPanelEditor } from './PieChartPanelEditor'; |
||||
import { PieChartPanel } from './PieChartPanel'; |
||||
import { PieChartOptions, defaults } from './types'; |
||||
import { singleStatBaseOptionsCheck } from '../singlestat2/module'; |
||||
|
||||
export const reactPanel = new ReactPanelPlugin<PieChartOptions>(PieChartPanel); |
||||
|
||||
reactPanel.setEditor(PieChartPanelEditor); |
||||
reactPanel.setDefaults(defaults); |
||||
reactPanel.setPanelTypeChangedHook(singleStatBaseOptionsCheck); |
||||
export const reactPanel = new ReactPanelPlugin<PieChartOptions>(PieChartPanel) |
||||
.setDefaults(defaults) |
||||
.setEditor(PieChartPanelEditor); |
||||
|
@ -1,39 +1,39 @@ |
||||
import { ReactPanelPlugin, getStatsCalculators } from '@grafana/ui'; |
||||
import { ReactPanelPlugin, getStatsCalculators, PanelModel } from '@grafana/ui'; |
||||
import { SingleStatOptions, defaults, SingleStatBaseOptions } from './types'; |
||||
import { SingleStatPanel } from './SingleStatPanel'; |
||||
import cloneDeep from 'lodash/cloneDeep'; |
||||
import { SingleStatEditor } from './SingleStatEditor'; |
||||
|
||||
export const reactPanel = new ReactPanelPlugin<SingleStatOptions>(SingleStatPanel); |
||||
|
||||
const optionsToKeep = ['valueOptions', 'stat', 'maxValue', 'maxValue', 'thresholds', 'valueMappings']; |
||||
|
||||
export const singleStatBaseOptionsCheck = ( |
||||
options: Partial<SingleStatBaseOptions>, |
||||
prevPluginId: string, |
||||
prevOptions?: any |
||||
prevOptions: any |
||||
) => { |
||||
if (prevOptions) { |
||||
optionsToKeep.forEach(v => { |
||||
if (prevOptions.hasOwnProperty(v)) { |
||||
options[v] = cloneDeep(prevOptions.display); |
||||
} |
||||
}); |
||||
} |
||||
optionsToKeep.forEach(v => { |
||||
if (prevOptions.hasOwnProperty(v)) { |
||||
options[v] = cloneDeep(prevOptions.display); |
||||
} |
||||
}); |
||||
return options; |
||||
}; |
||||
|
||||
export const singleStatMigrationCheck = (options: Partial<SingleStatBaseOptions>) => { |
||||
// 6.1 renamed some stats, This makes sure they are up to date
|
||||
// avg -> mean, current -> last, total -> sum
|
||||
const { valueOptions } = options; |
||||
if (valueOptions && valueOptions.stat) { |
||||
valueOptions.stat = getStatsCalculators([valueOptions.stat]).map(s => s.id)[0]; |
||||
export const singleStatMigrationCheck = (panel: PanelModel<SingleStatOptions>) => { |
||||
const options = panel.options; |
||||
if (options.valueOptions) { |
||||
// 6.1 renamed some stats, This makes sure they are up to date
|
||||
// avg -> mean, current -> last, total -> sum
|
||||
const { valueOptions } = options; |
||||
if (valueOptions && valueOptions.stat) { |
||||
valueOptions.stat = getStatsCalculators([valueOptions.stat]).map(s => s.id)[0]; |
||||
} |
||||
} |
||||
return options; |
||||
}; |
||||
|
||||
reactPanel.setEditor(SingleStatEditor); |
||||
reactPanel.setDefaults(defaults); |
||||
reactPanel.setPanelTypeChangedHook(singleStatBaseOptionsCheck); |
||||
reactPanel.setPanelMigrationHook(singleStatMigrationCheck); |
||||
export const reactPanel = new ReactPanelPlugin<SingleStatOptions>(SingleStatPanel) |
||||
.setDefaults(defaults) |
||||
.setEditor(SingleStatEditor) |
||||
.setPanelChangeHandler(singleStatMigrationCheck) |
||||
.setMigrationHandler(singleStatMigrationCheck); |
||||
|
Loading…
Reference in new issue