From a798b55eabb12dfbc490edf64a8bb85672a9fb50 Mon Sep 17 00:00:00 2001 From: Ramesh Mane <101566080+rameshmane7218@users.noreply.github.com> Date: Sat, 9 Mar 2024 11:51:11 +0000 Subject: [PATCH] fix(nc-gui): allow prefill date, datetime, time only in iso format --- .../composables/useSharedFormViewStore.ts | 51 ++++++++++--------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/packages/nc-gui/composables/useSharedFormViewStore.ts b/packages/nc-gui/composables/useSharedFormViewStore.ts index 072df3b768..c9e6e8ac08 100644 --- a/packages/nc-gui/composables/useSharedFormViewStore.ts +++ b/packages/nc-gui/composables/useSharedFormViewStore.ts @@ -277,22 +277,22 @@ const [useProvideSharedFormStore, useSharedFormStore] = useInjectionState((share return c } - // Update column - switch (sharedViewMeta.value.preFilledMode) { - case PreFilledMode.Hidden: { - c.show = false - break - } - case PreFilledMode.Locked: { - c.read_only = true - break - } - } - - // Prefill form state const preFillValue = getPreFillValue(c, (route.query?.[c.title] as string).trim()) if (preFillValue !== undefined) { + // Prefill form state formState.value[c.title] = preFillValue + + // Update column + switch (sharedViewMeta.value.preFilledMode) { + case PreFilledMode.Hidden: { + c.show = false + break + } + case PreFilledMode.Locked: { + c.read_only = true + break + } + } } return c @@ -398,19 +398,22 @@ const [useProvideSharedFormStore, useSharedFormStore] = useInjectionState((share } break } - case UITypes.Date: - case UITypes.DateTime: { - let parsedDateOrDateTime = dayjs(value, getDateTimeFormat(value)) - - if (!parsedDateOrDateTime.isValid()) { - parsedDateOrDateTime = dayjs(value, getDateFormat(value)) + case UITypes.Date: { + const parsedDate = dayjs(value, 'YYYY-MM-DD') + if (parsedDate.isValid()) { + preFillValue = parsedDate.format('YYYY-MM-DD') } + break + } + case UITypes.DateTime: { + let parsedDateTime = dayjs(value, 'YYYY-MM-DD HH:mm:ss') - if (parsedDateOrDateTime.isValid()) { - preFillValue = - c.uidt === UITypes.Date - ? parsedDateOrDateTime.format('YYYY-MM-DD') - : parsedDateOrDateTime.utc().format('YYYY-MM-DD HH:mm:ssZ') + if (parsedDateTime.isValid()) { + preFillValue = parsedDateTime.utc().format('YYYY-MM-DD HH:mm:ssZ') + } else if (dayjs(value).toISOString() === value) { + if (parsedDateTime.isValid() && parsedDateTime.toISOString() === value) { + preFillValue = dayjs(value).format('YYYY-MM-DD HH:mm:ssZ') + } } break }