diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.ts b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.ts index 178f760e60..f1a7756303 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field-validator.ts @@ -150,7 +150,7 @@ export class DateFieldValidator implements FormFieldValidator { if (DateFieldValidator.isValidDate(field.value, field.dateDisplayFormat)) { return true; } - field.validationSummary = 'Invalid date format'; + field.validationSummary = field.dateDisplayFormat; return false; } return true; @@ -178,7 +178,12 @@ export class MinDateFieldValidator implements FormFieldValidator { } // remove time and timezone info - let d = moment(field.value.split('T')[0], dateFormat); + let d; + if (typeof field.value === 'string') { + d = moment(field.value.split('T')[0], dateFormat); + } else { + d = field.value; + } let min = moment(field.minValue, dateFormat); if (d.isBefore(min)) { @@ -211,7 +216,12 @@ export class MaxDateFieldValidator implements FormFieldValidator { } // remove time and timezone info - let d = moment(field.value.split('T')[0], dateFormat); + let d; + if (typeof field.value === 'string') { + d = moment(field.value.split('T')[0], dateFormat); + } else { + d = field.value; + } let max = moment(field.maxValue, dateFormat); if (d.isAfter(max)) { diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts index 86d54ebba9..f455dbb46d 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/core/form-field.model.ts @@ -324,16 +324,12 @@ export class FormFieldModel extends FormWidgetModel { } break; case FormFieldTypes.DATE: - let dateValue; - if (NumberFieldValidator.isNumber(this.value)) { - dateValue = moment(this.value); - } else { - dateValue = moment(this.value, this.dateDisplayFormat); - } + let dateValue = moment(this.value, this.dateDisplayFormat, true); if (dateValue && dateValue.isValid()) { this.form.values[this.id] = `${dateValue.format('YYYY-MM-DD')}T00:00:00.000Z`; } else { this.form.values[this.id] = null; + this._value = this.value; } break; case FormFieldTypes.NUMBER: diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.ts b/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.ts index 572265600c..ea321a020d 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.ts @@ -66,9 +66,12 @@ export class DateWidgetComponent extends WidgetComponent implements OnInit { let momentDate = moment(newDateValue, this.field.dateDisplayFormat, true); if (!momentDate.isValid()) { this.field.validationSummary = this.field.dateDisplayFormat; + this.field.value = null; }else { this.field.value = newDateValue; } + }else { + this.field.value = null; } this.checkVisibility(this.field); }