diff --git a/backend/cmd/server/VERSION b/backend/cmd/server/VERSION index 067584f2ae..c63e8841ff 100644 --- a/backend/cmd/server/VERSION +++ b/backend/cmd/server/VERSION @@ -1 +1 @@ -0.1.110.45 +0.1.110.46 diff --git a/frontend/src/components/account/QuotaLimitCard.vue b/frontend/src/components/account/QuotaLimitCard.vue index ff5c11f567..abd10e6993 100644 --- a/frontend/src/components/account/QuotaLimitCard.vue +++ b/frontend/src/components/account/QuotaLimitCard.vue @@ -116,6 +116,20 @@ const timezoneOptions = [ 'Pacific/Auckland', ] +// Compute GMT offset label (e.g. "GMT+8", "GMT-5") for a given IANA timezone. +// Uses the current moment so DST is reflected automatically. +function getTimezoneOffsetLabel(tz: string): string { + try { + const dtf = new Intl.DateTimeFormat('en-US', { timeZone: tz, timeZoneName: 'shortOffset' }) + const parts = dtf.formatToParts(new Date()) + const tzPart = parts.find(p => p.type === 'timeZoneName') + // shortOffset returns "GMT+8" / "GMT-5:30" / "GMT" for UTC + return tzPart ? (tzPart.value === 'GMT' ? 'GMT+0' : tzPart.value) : '' + } catch { + return '' + } +} + // Hours for dropdown (0-23) const hourOptions = Array.from({ length: 24 }, (_, i) => i) @@ -207,7 +221,7 @@ const onWeeklyModeChange = (e: Event) => {
- {{ t('admin.accounts.quotaDailyLimitHintFixed', { hour: String(dailyResetHour ?? 0).padStart(2, '0'), timezone: resetTimezone || 'UTC' }) }} - {{ t('admin.accounts.quotaDailyLimitHint') }} -
- {{ t('admin.accounts.quotaWeeklyLimitHintFixed', { day: t('admin.accounts.dayOfWeek.' + (dayOptions.find(d => d.value === (weeklyResetDay ?? 1))?.key || 'monday')), hour: String(weeklyResetHour ?? 0).padStart(2, '0'), timezone: resetTimezone || 'UTC' }) }} - {{ t('admin.accounts.quotaWeeklyLimitHint') }} -