From da39c7297b80407da5d3494e2f2400821bc7ddb6 Mon Sep 17 00:00:00 2001 From: Leon Sorokin Date: Mon, 17 Oct 2022 02:06:45 -0500 Subject: [PATCH] BarChart: use dashboard timezone for x axis (#57047) --- public/app/plugins/panel/barchart/BarChartPanel.tsx | 1 + public/app/plugins/panel/barchart/bars.ts | 3 ++- public/app/plugins/panel/barchart/utils.ts | 5 +++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/public/app/plugins/panel/barchart/BarChartPanel.tsx b/public/app/plugins/panel/barchart/BarChartPanel.tsx index 8655e3609bd..e9df4a00a38 100644 --- a/public/app/plugins/panel/barchart/BarChartPanel.tsx +++ b/public/app/plugins/panel/barchart/BarChartPanel.tsx @@ -252,6 +252,7 @@ export const BarChartPanel: React.FunctionComponent = ({ return preparePlotConfigBuilder({ frame: alignedFrame, getTimeRange, + timeZone, theme, timeZones: [timeZone], eventBus, diff --git a/public/app/plugins/panel/barchart/bars.ts b/public/app/plugins/panel/barchart/bars.ts index 1e2282ef82b..28df92f2900 100644 --- a/public/app/plugins/panel/barchart/bars.ts +++ b/public/app/plugins/panel/barchart/bars.ts @@ -1,6 +1,6 @@ import uPlot, { Axis, AlignedData, Scale } from 'uplot'; -import { DataFrame, GrafanaTheme2 } from '@grafana/data'; +import { DataFrame, GrafanaTheme2, TimeZone } from '@grafana/data'; import { alpha } from '@grafana/data/src/themes/colorManipulator'; import { StackingMode, @@ -51,6 +51,7 @@ export interface BarsOptions { getColor?: (seriesIdx: number, valueIdx: number, value: any) => string | null; fillOpacity?: number; formatValue: (seriesIdx: number, value: any) => string; + timeZone?: TimeZone; text?: VizTextDisplayOptions; onHover?: (seriesIdx: number, valueIdx: number) => void; onLeave?: (seriesIdx: number, valueIdx: number) => void; diff --git a/public/app/plugins/panel/barchart/utils.ts b/public/app/plugins/panel/barchart/utils.ts index dfe5222d2dc..af4f1a08997 100644 --- a/public/app/plugins/panel/barchart/utils.ts +++ b/public/app/plugins/panel/barchart/utils.ts @@ -13,6 +13,7 @@ import { GrafanaTheme2, outerJoinDataFrames, reduceField, + TimeZone, VizOrientation, } from '@grafana/data'; import { maybeSortFrame } from '@grafana/data/src/transformations/transformers/joinDataFrames'; @@ -54,6 +55,7 @@ function getBarCharScaleOrientation(orientation: VizOrientation) { export interface BarChartOptionsEX extends PanelOptions { rawValue: (seriesIdx: number, valueIdx: number) => number | null; getColor?: (seriesIdx: number, valueIdx: number, value: any) => string | null; + timeZone?: TimeZone; fillOpacity?: number; } @@ -75,6 +77,7 @@ export const preparePlotConfigBuilder: UPlotConfigPrepFn = ({ xTickLabelMaxLength, xTickLabelSpacing = 0, legend, + timeZone, }) => { const builder = new UPlotConfigBuilder(); const defaultValueFormatter = (seriesIdx: number, value: any) => { @@ -103,6 +106,7 @@ export const preparePlotConfigBuilder: UPlotConfigPrepFn = ({ getColor, fillOpacity, formatValue, + timeZone, text, showValue, legend, @@ -151,6 +155,7 @@ export const preparePlotConfigBuilder: UPlotConfigPrepFn = ({ label: frame.fields[0].config.custom?.axisLabel, splits: config.xSplits, values: config.xValues, + timeZone, grid: { show: false }, ticks: { show: false }, gap: 15,