From 951b8dbe5a82ddea788c2150cf845eef4b5f5562 Mon Sep 17 00:00:00 2001 From: Bartosz Sekula Date: Mon, 8 Apr 2024 12:26:06 +0200 Subject: [PATCH] [AAE-21797] Datetime widget Min/Max values are checked on a field that is not required (#9524) * [AAE-21797] Datetime widget Min/Max values are checked on a field that is not required * update test --- .../widgets/core/form-field.model.spec.ts | 27 +++++++++++++++++++ .../widgets/core/form-field.model.ts | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/core/src/lib/form/components/widgets/core/form-field.model.spec.ts b/lib/core/src/lib/form/components/widgets/core/form-field.model.spec.ts index d04ba3a01d..53ec7f1317 100644 --- a/lib/core/src/lib/form/components/widgets/core/form-field.model.spec.ts +++ b/lib/core/src/lib/form/components/widgets/core/form-field.model.spec.ts @@ -313,6 +313,33 @@ describe('FormFieldModel', () => { expect(form.values['datetime']).toEqual(expectedDateTimeFormat); }); + it('should set the value to null when the value is null', () => { + const form = new FormModel(); + const field = new FormFieldModel(form, { + fieldType: 'FormFieldRepresentation', + id: 'datetime', + name: 'date and time', + type: 'datetime', + value: null, + required: false, + readOnly: false, + params: { + field: { + id: 'datetime', + name: 'date and time', + type: 'datetime', + value: null, + required: false, + readOnly: false + } + }, + dateDisplayFormat: 'YYYY-MM-DD HH:mm' + }); + + expect(field.value).toBe(null); + expect(form.values['datetime']).toEqual(null); + }); + it('should parse the checkbox set to "true" when it is readonly', () => { const form = new FormModel(); const field = new FormFieldModel(form, { diff --git a/lib/core/src/lib/form/components/widgets/core/form-field.model.ts b/lib/core/src/lib/form/components/widgets/core/form-field.model.ts index e49b79c9f9..60c3e01e81 100644 --- a/lib/core/src/lib/form/components/widgets/core/form-field.model.ts +++ b/lib/core/src/lib/form/components/widgets/core/form-field.model.ts @@ -451,7 +451,7 @@ export class FormFieldModel extends FormWidgetModel { this.value = DateFnsUtils.formatDate(new Date(), this.dateDisplayFormat); } - const dateTimeValue = new Date(this.value); + const dateTimeValue = this.value !== null ? new Date(this.value) : null; if (isValidDate(dateTimeValue)) { this.form.values[this.id] = dateTimeValue.toISOString();