[ADF-5269] - fix datatable date filter (#6232)

* [ADF-5269] - fix datatable date filter

* fix e2e
This commit is contained in:
Silviu Popa
2020-10-12 14:27:49 +03:00
committed by GitHub
parent e3560a3f72
commit 2b23edd0bd
3 changed files with 15 additions and 15 deletions

View File

@@ -6,8 +6,8 @@
[errorStateMatcher]="matcher"
placeholder="{{ 'SEARCH.FILTER.RANGE.FROM-DATE' | translate }}"
[matDatepicker]="fromDatepicker"
[max]="getFromMaxDate()"
(focusout)="onChangedHandler($event, from)"
[max]="fromMaxDate"
(dateChange)="onChangedHandler($event, from)"
data-automation-id="date-range-from-input">
<mat-datepicker-toggle matSuffix [for]="fromDatepicker" data-automation-id="date-range-from-date-toggle"></mat-datepicker-toggle>
<mat-datepicker #fromDatepicker color="accent"></mat-datepicker>
@@ -25,7 +25,7 @@
[matDatepicker]="toDatepicker"
[min]="from.value"
[max]="maxDate"
(focusout)="onChangedHandler($event, to)"
(dateChange)="onChangedHandler($event, to)"
data-automation-id="date-range-to-input">
<mat-datepicker-toggle matSuffix [for]="toDatepicker" data-automation-id="date-range-to-date-toggle"></mat-datepicker-toggle>
<mat-datepicker #toDatepicker color="accent"></mat-datepicker>

View File

@@ -74,7 +74,7 @@ describe('SearchDateRangeComponent', () => {
const momentFromInput = moment(inputString, dateFormatFixture);
expect(momentFromInput.isValid()).toBeTruthy();
component.onChangedHandler({ srcElement: { value: inputString } }, component.from);
component.onChangedHandler({ value: inputString }, component.from);
expect(component.from.value.toString()).toEqual(momentFromInput.toString());
});
@@ -86,7 +86,7 @@ describe('SearchDateRangeComponent', () => {
const momentFromInput = moment(inputString, dateFormatFixture);
expect(momentFromInput.isValid()).toBeFalsy();
component.onChangedHandler({ srcElement: { value: inputString } }, component.from);
component.onChangedHandler({ value: inputString }, component.from);
expect(component.from.value.toString()).not.toEqual(momentFromInput.toString());
});
@@ -156,7 +156,7 @@ describe('SearchDateRangeComponent', () => {
fixture.detectChanges();
const input = fixture.debugElement.nativeElement.querySelector('[data-automation-id="date-range-from-input"]');
input.value = '10-05-18';
input.dispatchEvent(new Event('focusout'));
input.dispatchEvent(new Event('input'));
fixture.detectChanges();
fixture.whenStable().then(() => {
expect(component.getFromValidationMessage()).toEqual('SEARCH.FILTER.VALIDATION.INVALID-DATE');
@@ -167,7 +167,7 @@ describe('SearchDateRangeComponent', () => {
fixture.detectChanges();
const input = fixture.debugElement.nativeElement.querySelector('[data-automation-id="date-range-from-input"]');
input.value = '10/10/2018';
input.dispatchEvent(new Event('focusout'));
input.dispatchEvent(new Event('input'));
fixture.detectChanges();
fixture.whenStable().then(() => {
fixture.detectChanges();

View File

@@ -56,6 +56,7 @@ export class SearchDateRangeComponent implements SearchWidget, OnInit, OnDestroy
context?: SearchQueryBuilderService;
datePickerDateFormat = DEFAULT_FORMAT_DATE;
maxDate: any;
fromMaxDate: any;
isActive = false;
startValue: any;
@@ -119,6 +120,8 @@ export class SearchDateRangeComponent implements SearchWidget, OnInit, OnDestroy
from: this.from,
to: this.to
});
this.setFromMaxDate();
}
ngOnDestroy() {
@@ -178,8 +181,7 @@ export class SearchDateRangeComponent implements SearchWidget, OnInit, OnDestroy
onChangedHandler(event: any, formControl: FormControl) {
const inputValue = event.srcElement.value;
const inputValue = event.value;
const formatDate = this.dateAdapter.parse(inputValue, this.datePickerDateFormat);
if (formatDate && formatDate.isValid()) {
formControl.setValue(formatDate);
@@ -187,11 +189,9 @@ export class SearchDateRangeComponent implements SearchWidget, OnInit, OnDestroy
formControl.setErrors({
'invalidOnChange': true
});
} else {
formControl.setErrors({
'required': true
});
}
this.setFromMaxDate();
}
setLocale(locale) {
@@ -207,13 +207,13 @@ export class SearchDateRangeComponent implements SearchWidget, OnInit, OnDestroy
event.srcElement.click();
}
getFromMaxDate(): any {
setFromMaxDate(): any {
let maxDate: string;
if (!this.to.value || this.maxDate && (moment(this.maxDate).isBefore(this.to.value))) {
maxDate = this.maxDate;
} else {
maxDate = moment(this.to.value);
}
return maxDate;
this.fromMaxDate = maxDate;
}
}