diff --git a/packages/grafana-ui/src/components/FieldConfigs/number.tsx b/packages/grafana-ui/src/components/FieldConfigs/number.tsx index b5f1af650d7..4bb75adea24 100644 --- a/packages/grafana-ui/src/components/FieldConfigs/number.tsx +++ b/packages/grafana-ui/src/components/FieldConfigs/number.tsx @@ -42,6 +42,7 @@ export const NumberValueEditor: React.FC { onChange( settings.integer ? toIntegerOrUndefined(e.currentTarget.value) : toFloatOrUndefined(e.currentTarget.value) @@ -64,6 +65,7 @@ export const NumberOverrideEditor: React.FC { onChange( settings.integer ? toIntegerOrUndefined(e.currentTarget.value) : toFloatOrUndefined(e.currentTarget.value) diff --git a/public/app/features/dashboard/components/PanelEditor/FieldConfigEditor.tsx b/public/app/features/dashboard/components/PanelEditor/FieldConfigEditor.tsx index 3357a2efc04..2e16d9170c9 100644 --- a/public/app/features/dashboard/components/PanelEditor/FieldConfigEditor.tsx +++ b/public/app/features/dashboard/components/PanelEditor/FieldConfigEditor.tsx @@ -1,12 +1,12 @@ import React from 'react'; import cloneDeep from 'lodash/cloneDeep'; import { - FieldConfigEditorRegistry, FieldConfigSource, DataFrame, FieldPropertyEditorItem, VariableSuggestionsScope, standardFieldConfigEditorRegistry, + PanelPlugin, SelectableValue, } from '@grafana/data'; import { Forms, fieldMatchersUI, ValuePicker } from '@grafana/ui'; @@ -15,8 +15,8 @@ import { OptionsGroup } from './OptionsGroup'; import { OverrideEditor } from './OverrideEditor'; interface Props { + plugin: PanelPlugin; config: FieldConfigSource; - custom?: FieldConfigEditorRegistry; // custom fields include?: string[]; // Ordered list of which fields should be shown/included onChange: (config: FieldConfigSource) => void; /* Helpful for IntelliSense */ @@ -113,15 +113,19 @@ export class FieldConfigEditor extends React.PureComponent { } renderCustomConfigs() { - const { custom } = this.props; - if (!custom) { + const { plugin } = this.props; + + if (!plugin.customFieldConfigs) { return null; } - return custom.list().map(f => this.renderEditor(f, true)); + + return plugin.customFieldConfigs.list().map(f => this.renderEditor(f, true)); } renderOverrides() { - const { config, data, custom } = this.props; + const { config, data, plugin } = this.props; + const { customFieldConfigs } = plugin; + if (config.overrides.length === 0) { return null; } @@ -133,9 +137,9 @@ export class FieldConfigEditor extends React.PureComponent { custom: false, })); - if (custom) { + if (customFieldConfigs) { configPropertiesOptions = configPropertiesOptions.concat( - custom.list().map(i => ({ + customFieldConfigs.list().map(i => ({ label: i.name, value: i.id, description: i.description, @@ -156,7 +160,7 @@ export class FieldConfigEditor extends React.PureComponent { onChange={value => this.onOverrideChange(i, value)} onRemove={() => this.onOverrideRemove(i)} configPropertiesOptions={configPropertiesOptions} - customPropertiesRegistry={custom} + customPropertiesRegistry={customFieldConfigs} /> ); })} @@ -178,13 +182,17 @@ export class FieldConfigEditor extends React.PureComponent { }; render() { + const { plugin } = this.props; + return (
- {this.renderStandardConfigs()} + {plugin.customFieldConfigs && ( + {this.renderCustomConfigs()} + )} - {this.props.custom && {this.renderCustomConfigs()}} + {this.renderStandardConfigs()} - + {this.renderOverrides()} {this.renderAddOverride()} diff --git a/public/app/features/dashboard/components/PanelEditor/PanelEditor.tsx b/public/app/features/dashboard/components/PanelEditor/PanelEditor.tsx index 5806181ce86..e5e7a6d7501 100644 --- a/public/app/features/dashboard/components/PanelEditor/PanelEditor.tsx +++ b/public/app/features/dashboard/components/PanelEditor/PanelEditor.tsx @@ -110,7 +110,7 @@ export class PanelEditorUnconnected extends PureComponent { return (