diff --git a/lib/core/src/lib/form/components/widgets/core/error-message.model.ts b/lib/core/src/lib/form/components/widgets/core/error-message.model.ts index e1987c185f..ecba680bc8 100644 --- a/lib/core/src/lib/form/components/widgets/core/error-message.model.ts +++ b/lib/core/src/lib/form/components/widgets/core/error-message.model.ts @@ -33,11 +33,9 @@ export class ErrorMessageModel { getAttributesAsJsonObj() { let result = {}; if (this.attributes.size > 0) { - const obj = Object.create(null); this.attributes.forEach((value, key) => { - obj[key] = value; + result[key] = typeof value === 'string' ? value : JSON.stringify(value); }); - result = JSON.stringify(obj); } return result; } diff --git a/lib/core/src/lib/form/components/widgets/core/form-field-validator.ts b/lib/core/src/lib/form/components/widgets/core/form-field-validator.ts index ce097b7dd8..642823ea70 100644 --- a/lib/core/src/lib/form/components/widgets/core/form-field-validator.ts +++ b/lib/core/src/lib/form/components/widgets/core/form-field-validator.ts @@ -280,7 +280,7 @@ export class MinDateTimeFieldValidator implements FormFieldValidator { if (isBefore(fieldValueDate, min)) { field.validationSummary.message = `FORM.FIELD.VALIDATOR.NOT_LESS_THAN`; - field.validationSummary.attributes.set('minValue', DateFnsUtils.formatDate(min, field.dateDisplayFormat).replace(':', '-')); + field.validationSummary.attributes.set('minValue', DateFnsUtils.formatDate(DateFnsUtils.utcToLocal(min), field.dateDisplayFormat)); isValid = false; } return isValid; @@ -322,7 +322,7 @@ export class MaxDateTimeFieldValidator implements FormFieldValidator { if (isAfter(fieldValueDate, max)) { field.validationSummary.message = `FORM.FIELD.VALIDATOR.NOT_GREATER_THAN`; - field.validationSummary.attributes.set('maxValue', DateFnsUtils.formatDate(max, field.dateDisplayFormat).replace(':', '-')); + field.validationSummary.attributes.set('maxValue', DateFnsUtils.formatDate(DateFnsUtils.utcToLocal(max), field.dateDisplayFormat)); isValid = false; } return isValid; 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 aae980098a..53afd204ef 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 @@ -299,7 +299,7 @@ export class FormFieldModel extends FormWidgetModel { } parseValue(json: any): any { - let value = Object.prototype.hasOwnProperty.call(json, 'value') && json.value !== undefined ? json.value : null; + const value = Object.prototype.hasOwnProperty.call(json, 'value') && json.value !== undefined ? json.value : null; /* This is needed due to Activiti issue related to reading dropdown values as value string @@ -440,7 +440,12 @@ export class FormFieldModel extends FormWidgetModel { this.value = new Date(); } - const dateValue = DateFnsUtils.parseDate(this.value, this.dateDisplayFormat); + let dateValue; + try { + dateValue = DateFnsUtils.parseDate(this.value, this.dateDisplayFormat); + } catch (e) { + dateValue = new Date('error'); + } if (isValidDate(dateValue)) { const datePart = DateFnsUtils.formatDate(dateValue, 'yyyy-MM-dd'); diff --git a/lib/core/src/lib/form/components/widgets/date-time/date-time.widget.ts b/lib/core/src/lib/form/components/widgets/date-time/date-time.widget.ts index a6cc9844c1..33122e4753 100644 --- a/lib/core/src/lib/form/components/widgets/date-time/date-time.widget.ts +++ b/lib/core/src/lib/form/components/widgets/date-time/date-time.widget.ts @@ -77,15 +77,15 @@ export class DateTimeWidgetComponent extends WidgetComponent implements OnInit { if (this.field) { if (this.field.minValue) { - this.minDate = DateFnsUtils.localToUtc(new Date(this.field.minValue)); + this.minDate = DateFnsUtils.utcToLocal(new Date(this.field.minValue)); } if (this.field.maxValue) { - this.maxDate = DateFnsUtils.localToUtc(new Date(this.field.maxValue)); + this.maxDate = DateFnsUtils.utcToLocal(new Date(this.field.maxValue)); } if (this.field.value) { - this.value = DateFnsUtils.localToUtc(new Date(this.field.value)); + this.value = new Date(this.field.value); } } } @@ -95,7 +95,7 @@ export class DateTimeWidgetComponent extends WidgetComponent implements OnInit { const newValue = this.dateTimeAdapter.parse(input.value, this.field.dateDisplayFormat); if (isValid(newValue)) { - this.field.value = DateFnsUtils.utcToLocal(newValue).toISOString(); + this.field.value = DateFnsUtils.localToUtc(newValue).toISOString(); } else { this.field.value = input.value; } @@ -108,7 +108,7 @@ export class DateTimeWidgetComponent extends WidgetComponent implements OnInit { const input = event.targetElement as HTMLInputElement; if (newValue && isValid(newValue)) { - this.field.value = DateFnsUtils.utcToLocal(newValue).toISOString(); + this.field.value = DateFnsUtils.localToUtc(newValue).toISOString(); } else { this.field.value = input.value; }