From eba6f66fbaabd9a9f763c0f4ac1d6d45c6aada65 Mon Sep 17 00:00:00 2001 From: Ryan McKinley Date: Mon, 17 May 2021 10:54:06 -0700 Subject: [PATCH] FieldDisplay: remove auto min/max for percent units (#34234) --- .../grafana-data/src/field/fieldOverrides.ts | 17 -------------- .../SingleStatBaseOptions.test.ts | 18 +++++++++++++++ .../SingleStatShared/SingleStatBaseOptions.ts | 23 ++++++++++++++++++- 3 files changed, 40 insertions(+), 18 deletions(-) diff --git a/packages/grafana-data/src/field/fieldOverrides.ts b/packages/grafana-data/src/field/fieldOverrides.ts index c81cc7c4a35..8e15f689d68 100644 --- a/packages/grafana-data/src/field/fieldOverrides.ts +++ b/packages/grafana-data/src/field/fieldOverrides.ts @@ -150,23 +150,6 @@ export function applyFieldOverrides(options: ApplyFieldOverrideOptions): DataFra } } - // Some units have an implied range - if (config.unit === 'percent') { - if (!isNumber(config.min)) { - config.min = 0; - } - if (!isNumber(config.max)) { - config.max = 100; - } - } else if (config.unit === 'percentunit') { - if (!isNumber(config.min)) { - config.min = 0; - } - if (!isNumber(config.max)) { - config.max = 1; - } - } - // Set the Min/Max value automatically let range: NumericRange | undefined = undefined; if (field.type === FieldType.number) { diff --git a/packages/grafana-ui/src/components/SingleStatShared/SingleStatBaseOptions.test.ts b/packages/grafana-ui/src/components/SingleStatShared/SingleStatBaseOptions.test.ts index 5458e37eda7..21f2ed6e6dc 100644 --- a/packages/grafana-ui/src/components/SingleStatShared/SingleStatBaseOptions.test.ts +++ b/packages/grafana-ui/src/components/SingleStatShared/SingleStatBaseOptions.test.ts @@ -229,4 +229,22 @@ describe('sharedSingleStatMigrationHandler', () => { expect(panel.fieldConfig.defaults.min).toBe(undefined); expect(panel.fieldConfig.defaults.max).toBe(undefined); }); + + it('auto set min/max for percent units before 8.0', () => { + const panel = ({ + options: { + fieldOptions: { + defaults: { + unit: 'percentunit', + }, + }, + }, + title: 'Usage', + type: 'bargauge', + } as unknown) as PanelModel; + sharedSingleStatMigrationHandler(panel as any); + expect(panel.fieldConfig.defaults.unit).toBe('percentunit'); + expect(panel.fieldConfig.defaults.min).toBe(0); + expect(panel.fieldConfig.defaults.max).toBe(1); + }); }); diff --git a/packages/grafana-ui/src/components/SingleStatShared/SingleStatBaseOptions.ts b/packages/grafana-ui/src/components/SingleStatShared/SingleStatBaseOptions.ts index 1657624bb91..0238ac9290f 100644 --- a/packages/grafana-ui/src/components/SingleStatShared/SingleStatBaseOptions.ts +++ b/packages/grafana-ui/src/components/SingleStatShared/SingleStatBaseOptions.ts @@ -1,4 +1,4 @@ -import { cloneDeep, omit } from 'lodash'; +import { cloneDeep, isNumber, omit } from 'lodash'; import { fieldReducers, @@ -216,6 +216,27 @@ export function sharedSingleStatMigrationHandler(panel: PanelModel