From a14af5e6801778d983f996c1a97e077d7b36aa48 Mon Sep 17 00:00:00 2001 From: Alex Khomenko Date: Thu, 7 Sep 2023 12:41:21 +0300 Subject: [PATCH] Share link: Use panel relative time for direct link rendered image (#74438) * Use relative timerange for share link * Fix time range --- .../dashboard/components/ShareModal/utils.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/public/app/features/dashboard/components/ShareModal/utils.ts b/public/app/features/dashboard/components/ShareModal/utils.ts index 9c651470840..16fd652cb37 100644 --- a/public/app/features/dashboard/components/ShareModal/utils.ts +++ b/public/app/features/dashboard/components/ShareModal/utils.ts @@ -1,8 +1,10 @@ -import { dateTime, locationUtil, PanelModel, TimeRange, urlUtil } from '@grafana/data'; +import { dateTime, locationUtil, TimeRange, urlUtil, rangeUtil } from '@grafana/data'; import { config } from '@grafana/runtime'; import { createShortLink } from 'app/core/utils/shortLinks'; import { getTimeSrv } from 'app/features/dashboard/services/TimeSrv'; +import { PanelModel } from '../../state'; + export interface BuildParamsArgs { useCurrentTimeRange: boolean; selectedTheme?: string; @@ -21,9 +23,17 @@ export function buildParams({ orgId = config.bootData.user.orgId, }: BuildParamsArgs): URLSearchParams { const searchParams = new URLSearchParams(search); + const relative = panel?.timeFrom; - searchParams.set('from', String(range.from.valueOf())); - searchParams.set('to', String(range.to.valueOf())); + // Use panel's relative time if it's set + if (relative) { + const { from, to } = rangeUtil.describeTextRange(relative); + searchParams.set('from', from); + searchParams.set('to', to); + } else { + searchParams.set('from', String(range.from.valueOf())); + searchParams.set('to', String(range.to.valueOf())); + } searchParams.set('orgId', String(orgId)); if (!useCurrentTimeRange) {