[ADF-1499] fixed validation and value setting on date widget (#2298)

* [ADF-1499] added fix for date widget usage

* [ADF-1499] improved date validator to match new date widget material
This commit is contained in:
Vito
2017-09-05 04:45:22 -07:00
committed by Mario Romano
parent 50e61a0d08
commit 233355ffe7
3 changed files with 18 additions and 9 deletions

View File

@@ -150,7 +150,7 @@ export class DateFieldValidator implements FormFieldValidator {
if (DateFieldValidator.isValidDate(field.value, field.dateDisplayFormat)) { if (DateFieldValidator.isValidDate(field.value, field.dateDisplayFormat)) {
return true; return true;
} }
field.validationSummary = 'Invalid date format'; field.validationSummary = field.dateDisplayFormat;
return false; return false;
} }
return true; return true;
@@ -178,7 +178,12 @@ export class MinDateFieldValidator implements FormFieldValidator {
} }
// remove time and timezone info // 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); let min = moment(field.minValue, dateFormat);
if (d.isBefore(min)) { if (d.isBefore(min)) {
@@ -211,7 +216,12 @@ export class MaxDateFieldValidator implements FormFieldValidator {
} }
// remove time and timezone info // 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); let max = moment(field.maxValue, dateFormat);
if (d.isAfter(max)) { if (d.isAfter(max)) {

View File

@@ -324,16 +324,12 @@ export class FormFieldModel extends FormWidgetModel {
} }
break; break;
case FormFieldTypes.DATE: case FormFieldTypes.DATE:
let dateValue; let dateValue = moment(this.value, this.dateDisplayFormat, true);
if (NumberFieldValidator.isNumber(this.value)) {
dateValue = moment(this.value);
} else {
dateValue = moment(this.value, this.dateDisplayFormat);
}
if (dateValue && dateValue.isValid()) { if (dateValue && dateValue.isValid()) {
this.form.values[this.id] = `${dateValue.format('YYYY-MM-DD')}T00:00:00.000Z`; this.form.values[this.id] = `${dateValue.format('YYYY-MM-DD')}T00:00:00.000Z`;
} else { } else {
this.form.values[this.id] = null; this.form.values[this.id] = null;
this._value = this.value;
} }
break; break;
case FormFieldTypes.NUMBER: case FormFieldTypes.NUMBER:

View File

@@ -66,9 +66,12 @@ export class DateWidgetComponent extends WidgetComponent implements OnInit {
let momentDate = moment(newDateValue, this.field.dateDisplayFormat, true); let momentDate = moment(newDateValue, this.field.dateDisplayFormat, true);
if (!momentDate.isValid()) { if (!momentDate.isValid()) {
this.field.validationSummary = this.field.dateDisplayFormat; this.field.validationSummary = this.field.dateDisplayFormat;
this.field.value = null;
}else { }else {
this.field.value = newDateValue; this.field.value = newDateValue;
} }
}else {
this.field.value = null;
} }
this.checkVisibility(this.field); this.checkVisibility(this.field);
} }