diff --git a/libs/sdk-model/api/sdk-model.api.md b/libs/sdk-model/api/sdk-model.api.md index 631fc0f2355..ed5345aebfc 100644 --- a/libs/sdk-model/api/sdk-model.api.md +++ b/libs/sdk-model/api/sdk-model.api.md @@ -3178,6 +3178,7 @@ export interface ISettings { platformEdition?: PlatformEdition; responsiveUiDateFormat?: string; showHiddenCatalogItems?: boolean; + timezone?: string; weekStart?: WeekStart; whiteLabeling?: IWhiteLabeling; } diff --git a/libs/sdk-model/src/settings/index.ts b/libs/sdk-model/src/settings/index.ts index 75a23b31040..709012e9636 100644 --- a/libs/sdk-model/src/settings/index.ts +++ b/libs/sdk-model/src/settings/index.ts @@ -311,6 +311,11 @@ export interface ISettings { */ metadataTimeZone?: string; + /** + * Timezone + */ + timezone?: string; + /** * Enable new max bucket size items limit for Pivot Table */ diff --git a/libs/sdk-ui-dashboard/api/sdk-ui-dashboard.api.md b/libs/sdk-ui-dashboard/api/sdk-ui-dashboard.api.md index f4abc249f1a..29cebcab863 100644 --- a/libs/sdk-ui-dashboard/api/sdk-ui-dashboard.api.md +++ b/libs/sdk-ui-dashboard/api/sdk-ui-dashboard.api.md @@ -7866,6 +7866,9 @@ export const selectSupportsSettingConnectingAttributes: DashboardSelector; +// @public +export const selectTimezone: DashboardSelector; + // @alpha export const selectUsers: DashboardSelector; diff --git a/libs/sdk-ui-dashboard/src/model/store/config/configSelectors.ts b/libs/sdk-ui-dashboard/src/model/store/config/configSelectors.ts index 0d589e0f7a7..118a2ba5f14 100644 --- a/libs/sdk-ui-dashboard/src/model/store/config/configSelectors.ts +++ b/libs/sdk-ui-dashboard/src/model/store/config/configSelectors.ts @@ -71,6 +71,15 @@ export const selectLocale: DashboardSelector = createSelector(selectCon return state.locale ?? undefined; }); +/** + * Returns timezone + * + * @public + */ +export const selectTimezone: DashboardSelector = createSelector(selectConfig, (state) => { + return state.settings.timezone ?? undefined; +}); + /** * Returns number separators to use when rendering numeric values on charts or KPIs. * diff --git a/libs/sdk-ui-dashboard/src/model/store/index.ts b/libs/sdk-ui-dashboard/src/model/store/index.ts index 6223110de61..b37bc9480b4 100644 --- a/libs/sdk-ui-dashboard/src/model/store/index.ts +++ b/libs/sdk-ui-dashboard/src/model/store/index.ts @@ -74,6 +74,7 @@ export { selectEnableKPIDashboardDrillFromAttribute, selectIsShareButtonHidden, selectWeekStart, + selectTimezone, selectIsDrillDownEnabled, selectEnableUnavailableItemsVisibility, selectEnableKDDependentFilters, diff --git a/libs/sdk-ui-dashboard/src/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.ts b/libs/sdk-ui-dashboard/src/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.ts index aaba9d03355..1e4cbeb7610 100644 --- a/libs/sdk-ui-dashboard/src/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.ts +++ b/libs/sdk-ui-dashboard/src/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.ts @@ -23,6 +23,7 @@ import { isCustomWidget, ExtendedDashboardWidget, selectCurrentUser, + selectTimezone, } from "../../../../model/index.js"; import { normalizeTime } from "@gooddata/sdk-ui-kit"; import { WidgetAttachmentType } from "../types.js"; @@ -73,6 +74,8 @@ export function useEditScheduledEmail(props: IUseEditScheduledEmailProps) { // Dashboard const dashboardId = useDashboardSelector(selectDashboardId); const dashboardTitle = useDashboardSelector(selectDashboardTitle); + const timezone = useDashboardSelector(selectTimezone); + const areDashboardFiltersChanged = !!dashboardFilters; const currentUser = useDashboardSelector(selectCurrentUser); @@ -85,6 +88,7 @@ export function useEditScheduledEmail(props: IUseEditScheduledEmailProps) { newAutomationMetadataObjectDefinition( isWidget ? { + timezone, dashboardId: dashboardId!, notificationChannel: firstChannel, insight, @@ -93,6 +97,7 @@ export function useEditScheduledEmail(props: IUseEditScheduledEmailProps) { widgetFilters, } : { + timezone, dashboardId: dashboardId!, notificationChannel: firstChannel, title: dashboardTitle, @@ -439,6 +444,7 @@ function newWidgetExportDefinitionMetadataObjectDefinition({ } function newAutomationMetadataObjectDefinition({ + timezone, dashboardId, notificationChannel, title, @@ -448,6 +454,7 @@ function newAutomationMetadataObjectDefinition({ dashboardFilters, widgetFilters, }: { + timezone?: string; dashboardId: string; notificationChannel: string; title?: string; @@ -482,7 +489,7 @@ function newAutomationMetadataObjectDefinition({ tags: [], schedule: { firstRun: toModifiedISOString(normalizedFirstRun), - timezone: getUserTimezone().identifier, + timezone: timezone ?? getUserTimezone().identifier, cron, }, details: {