TimeSeries: Separate field unit config for axis ticks and other display means when stacking by percent (#43713)

pull/43858/head
Dominik Prokop 4 years ago committed by GitHub
parent 737bc35219
commit 4b814dbcea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      packages/grafana-ui/src/components/TimeSeries/utils.ts
  2. 7
      public/app/plugins/panel/timeseries/utils.ts

@ -11,6 +11,7 @@ import {
getFieldColorModeForField,
getFieldSeriesColor,
getFieldDisplayName,
getDisplayProcessor,
} from '@grafana/data';
import { UPlotConfigBuilder, UPlotConfigPrepFn } from '../uPlot/config/UPlotConfigBuilder';
@ -23,6 +24,7 @@ import {
ScaleDirection,
ScaleOrientation,
VizLegendOptions,
StackingMode,
} from '@grafana/schema';
import { collectStackingGroups, orderIdsByCalcs, preparePlotData } from '../uPlot/utils';
import uPlot from 'uplot';
@ -135,8 +137,19 @@ export const preparePlotConfigBuilder: UPlotConfigPrepFn<{ sync: DashboardCursor
// TODO: skip this for fields with custom renderers?
field.state!.seriesIndex = seriesIndex++;
const fmt = field.display ?? defaultFormatter;
let fmt = field.display ?? defaultFormatter;
if (field.config.custom?.stacking?.mode === StackingMode.Percent) {
fmt = getDisplayProcessor({
field: {
...field,
config: {
...field.config,
unit: 'percentunit',
},
},
theme,
});
}
const scaleKey = buildScaleKey(config);
const colorMode = getFieldColorModeForField(field);
const scaleColor = getFieldSeriesColor(field, theme);

@ -7,7 +7,7 @@ import {
GrafanaTheme2,
isBooleanUnit,
} from '@grafana/data';
import { GraphFieldConfig, LineInterpolation, StackingMode } from '@grafana/schema';
import { GraphFieldConfig, LineInterpolation } from '@grafana/schema';
/**
* Returns null if there are no graphable fields
@ -47,11 +47,6 @@ export function prepareGraphableFields(series: DataFrame[], theme: GrafanaTheme2
),
};
if (copy.config.custom?.stacking?.mode === StackingMode.Percent) {
copy.config.unit = 'percentunit';
copy.display = getDisplayProcessor({ field: copy, theme });
}
fields.push(copy);
break; // ok
case FieldType.boolean:

Loading…
Cancel
Save