From 3c5445c27d26e301f30cbeeaedc94afed128ca30 Mon Sep 17 00:00:00 2001 From: zhujingyang <72259332+zjy365@users.noreply.github.com> Date: Mon, 18 Sep 2023 16:26:44 +0800 Subject: [PATCH] feat:cronjob timezone (#3948) Signed-off-by: jingyang <3161362058@qq.com> --- frontend/providers/cronjob/src/types/job.d.ts | 11 +++++++++++ frontend/providers/cronjob/src/utils/adapt.ts | 10 ++++++++-- frontend/providers/cronjob/src/utils/json2Yaml.ts | 4 +++- frontend/providers/cronjob/src/utils/tools.ts | 5 +++++ 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/frontend/providers/cronjob/src/types/job.d.ts b/frontend/providers/cronjob/src/types/job.d.ts index f17c70ea797..0a81c02521e 100644 --- a/frontend/providers/cronjob/src/types/job.d.ts +++ b/frontend/providers/cronjob/src/types/job.d.ts @@ -104,3 +104,14 @@ export type JobList = { startTimeTimestamp: number; }[]; }; + +export type CronJobAnnotations = { + timeZone: string; + enableNumberCopies: string; + enableResources: string; + cpu: string; + memory: string; + launchpadName: string; + launchpadId: string; + replicas: string; +}; diff --git a/frontend/providers/cronjob/src/utils/adapt.ts b/frontend/providers/cronjob/src/utils/adapt.ts index 58261c1c1a9..d8fb6766049 100644 --- a/frontend/providers/cronjob/src/utils/adapt.ts +++ b/frontend/providers/cronjob/src/utils/adapt.ts @@ -1,6 +1,12 @@ import { CronJobStatusMap, StatusEnum } from '@/constants/job'; import { AppListItemType } from '@/types/app'; -import { CronJobEditType, CronJobListItemType, JobEvent, JobList } from '@/types/job'; +import { + CronJobAnnotations, + CronJobEditType, + CronJobListItemType, + JobEvent, + JobList +} from '@/types/job'; import { cpuFormatToM, cron2Time, formatPodTime, memoryFormatToMi } from '@/utils/tools'; import { CoreV1EventList, @@ -50,7 +56,7 @@ export const adaptCronJobDetail = async (job: V1CronJob): Promise { const commands = job.spec?.jobTemplate?.spec?.template?.spec?.containers?.[0]?.args; diff --git a/frontend/providers/cronjob/src/utils/json2Yaml.ts b/frontend/providers/cronjob/src/utils/json2Yaml.ts index c2d769c39e0..562fd303645 100644 --- a/frontend/providers/cronjob/src/utils/json2Yaml.ts +++ b/frontend/providers/cronjob/src/utils/json2Yaml.ts @@ -1,10 +1,11 @@ import { CronJobEditType } from '@/types/job'; -import { str2Num } from '@/utils/tools'; +import { getUserTimeZone, str2Num } from '@/utils/tools'; import yaml from 'js-yaml'; import { getUserServiceAccount } from './user'; export const json2CronJob = (data: CronJobEditType) => { const serviceAccount = getUserServiceAccount(); + const timeZone = getUserTimeZone(); const metadata = { name: data.jobName, @@ -106,6 +107,7 @@ export const json2CronJob = (data: CronJobEditType) => { schedule: data.schedule, successfulJobsHistoryLimit: 3, failedJobsHistoryLimit: 3, + timeZone: timeZone, jobTemplate: { activeDeadlineSeconds: 600, spec: { diff --git a/frontend/providers/cronjob/src/utils/tools.ts b/frontend/providers/cronjob/src/utils/tools.ts index d5773cf6aff..c3a96bb7737 100644 --- a/frontend/providers/cronjob/src/utils/tools.ts +++ b/frontend/providers/cronjob/src/utils/tools.ts @@ -330,3 +330,8 @@ export const obj2Query = (obj: Record) => { return str.slice(0, str.length - 1); }; + +export const getUserTimeZone = () => { + const userTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone; + return userTimeZone; +};