diff --git a/packages/volto/news/7993.bugfix b/packages/volto/news/7993.bugfix new file mode 100644 index 0000000000..c86c54f1ba --- /dev/null +++ b/packages/volto/news/7993.bugfix @@ -0,0 +1 @@ +Fixed the requirement to set the end date when "open end" is checked. @TimoBroeskamp \ No newline at end of file diff --git a/packages/volto/src/components/manage/Widgets/DatetimeWidget.jsx b/packages/volto/src/components/manage/Widgets/DatetimeWidget.jsx index b509f86b6b..a64cda768e 100644 --- a/packages/volto/src/components/manage/Widgets/DatetimeWidget.jsx +++ b/packages/volto/src/components/manage/Widgets/DatetimeWidget.jsx @@ -111,6 +111,10 @@ const DatetimeWidgetComponent = (props) => { if (id === 'end' && formData?.open_end) { return null; } + // If open_end is checked set formData.end to formData.start + if (formData?.open_end === true) { + formData.end = formData.start; + } const getInternalValue = () => { return parseDateTime(toBackendLang(lang), value, undefined, moment.default); diff --git a/packages/volto/src/helpers/FormValidation/validators.ts b/packages/volto/src/helpers/FormValidation/validators.ts index af87f4baf0..28bf661ac4 100644 --- a/packages/volto/src/helpers/FormValidation/validators.ts +++ b/packages/volto/src/helpers/FormValidation/validators.ts @@ -160,7 +160,8 @@ export const startEventDateRangeValidator = ({ formatMessage, }: Validator) => { const isValid = - value && formData.end && new Date(value) < new Date(formData.end); + (value && formData.end && new Date(value) < new Date(formData.end)) || + (formData.open_end && formData.start === formData.end); return !isValid ? formatMessage(messages.startEventRange, { endDateValueOrEndFieldName: formData.end || 'end', @@ -175,7 +176,8 @@ export const endEventDateRangeValidator = ({ formatMessage, }: Validator) => { const isValid = - value && formData.start && new Date(value) > new Date(formData.start); + (value && formData.start && new Date(value) > new Date(formData.start)) || + (formData.open_end && formData.start === formData.end); return !isValid ? formatMessage(messages.endEventRange, { startDateValueOrStartFieldName: formData.start || 'start',