Variables: Add support for $__timezone template variable (#66785)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
This commit is contained in:
Victor Colomb
2023-05-09 15:21:28 +02:00
committed by GitHub
parent ee05e3675a
commit 2489e3524d
3 changed files with 32 additions and 2 deletions

View File

@@ -1,4 +1,6 @@
import { DataLinkBuiltInVars, ScopedVars, urlUtil } from '@grafana/data';
import moment from 'moment-timezone';
import { DataLinkBuiltInVars, getTimeZone, ScopedVars, urlUtil } from '@grafana/data';
import { getTimeSrv } from '../dashboard/services/TimeSrv';
import { getVariablesUrlParams } from '../variables/getAllVariableValuesForUrl';
@@ -13,6 +15,7 @@ export const macroRegistry: Record<string, MacroHandler> = {
['__field']: fieldMacro,
[DataLinkBuiltInVars.includeVars]: includeVarsMacro,
[DataLinkBuiltInVars.keepTime]: urlTimeRangeMacro,
['__timezone']: timeZoneMacro,
};
function includeVarsMacro(match: string, fieldPath?: string, scopedVars?: ScopedVars) {
@@ -23,3 +26,8 @@ function includeVarsMacro(match: string, fieldPath?: string, scopedVars?: Scoped
function urlTimeRangeMacro() {
return urlUtil.toUrlParams(getTimeSrv().timeRangeForUrl());
}
function timeZoneMacro() {
const timeZone = getTimeZone({ timeZone: getTimeSrv().timeModel?.getTimezone() });
return timeZone === 'browser' ? moment.tz.guess() : timeZone;
}