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 696e21d700..21b15244db 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 @@ -159,6 +159,8 @@ export class DateFieldValidator implements FormFieldValidator { export class MinDateFieldValidator implements FormFieldValidator { + MIN_DATE_FORMAT = 'DD-MM-YYYY'; + private supportedTypes = [ FormFieldTypes.DATE ]; @@ -184,7 +186,7 @@ export class MinDateFieldValidator implements FormFieldValidator { } else { d = field.value; } - let min = moment(field.minValue, dateFormat); + let min = moment(field.minValue, this.MIN_DATE_FORMAT); if (d.isBefore(min)) { field.validationSummary.message = `FORM.FIELD.VALIDATOR.NOT_LESS_THAN`; @@ -198,6 +200,8 @@ export class MinDateFieldValidator implements FormFieldValidator { export class MaxDateFieldValidator implements FormFieldValidator { + MAX_DATE_FORMAT = 'DD-MM-YYYY'; + private supportedTypes = [ FormFieldTypes.DATE ]; @@ -223,7 +227,7 @@ export class MaxDateFieldValidator implements FormFieldValidator { } else { d = field.value; } - let max = moment(field.maxValue, dateFormat); + let max = moment(field.maxValue, this.MAX_DATE_FORMAT); if (d.isAfter(max)) { field.validationSummary.message = `FORM.FIELD.VALIDATOR.NOT_GREATER_THAN`; diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.spec.ts b/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.spec.ts index acb6a8fce2..02e7b27166 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.spec.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/date/date.widget.spec.ts @@ -147,6 +147,37 @@ describe('DateWidgetComponent', () => { }); })); + it('should check correctly the min value with different formats', async(() => { + widget.field.value = '11-30-9999'; + widget.field.dateDisplayFormat = 'MM-DD-YYYY'; + widget.field.minValue = '30-12-9999'; + widget.ngOnInit(); + widget.field.validate(); + fixture.detectChanges(); + fixture.whenStable() + .then(() => { + expect(element.querySelector('#date-field-id')).toBeDefined(); + expect(element.querySelector('#date-field-id')).not.toBeNull(); + let dateElement: any = element.querySelector('#date-field-id'); + expect(dateElement.value).toContain('11-30-9999'); + expect(element.querySelector('.adf-error-text').textContent).toBe('FORM.FIELD.VALIDATOR.NOT_LESS_THAN'); + }); + })); + + it('should show the correct format type', async(() => { + widget.field.value = '12-30-9999'; + widget.field.dateDisplayFormat = 'MM-DD-YYYY'; + widget.ngOnInit(); + fixture.detectChanges(); + fixture.whenStable() + .then(() => { + expect(element.querySelector('#date-field-id')).toBeDefined(); + expect(element.querySelector('#date-field-id')).not.toBeNull(); + let dateElement: any = element.querySelector('#date-field-id'); + expect(dateElement.value).toContain('12-30-9999'); + }); + })); + it('should hide not visible date widget', async(() => { widget.field.isVisible = false; fixture.detectChanges(); 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 da7fb4f75e..dde8682511 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 @@ -58,11 +58,11 @@ export class DateWidgetComponent extends WidgetComponent implements OnInit { if (this.field) { if (this.field.minValue) { - this.minDate = moment(this.field.minValue, this.field.dateDisplayFormat); + this.minDate = moment(this.field.minValue, 'DD/MM/YYYY'); } if (this.field.maxValue) { - this.maxDate = moment(this.field.maxValue, this.field.dateDisplayFormat); + this.maxDate = moment(this.field.maxValue, 'DD/MM/YYYY'); } } this.displayDate = moment(this.field.value, this.field.dateDisplayFormat);