diff --git a/client/src/app/instance/search/components/criteria/search-type/between-date.component.html b/client/src/app/instance/search/components/criteria/search-type/between-date.component.html index 776a39f64a1a0403874f9de82e1063829b1862f8..99ece1107ac9d47ec345d4f9a23e3c0b6f213aab 100644 --- a/client/src/app/instance/search/components/criteria/search-type/between-date.component.html +++ b/client/src/app/instance/search/components/criteria/search-type/between-date.component.html @@ -1,7 +1,11 @@ <form [formGroup]="form" novalidate> <div class="row form-group"> <div class="col-md-3 col-sm-auto pr-sm-1 mb-1 mb-sm-0"> - <div class="operator_readonly">BW</div> + <select class="custom-select" (change)="labelOnChange($event.target.value)"> + <option [value]="">Bw</option> + <option [value]="'nl'">Null</option> + <option [value]="'nnl'">Not Null</option> + </select> </div> <div class="w-100 d-block d-sm-none"></div> <div class="col pl-sm-1"> diff --git a/client/src/app/instance/search/components/criteria/search-type/between-date.component.ts b/client/src/app/instance/search/components/criteria/search-type/between-date.component.ts index f90a2cb2d658fda3141dc57cda5bc440bf4e8a9c..2c7d594f796d42c6d0c664ab4ad3776a9b681466 100644 --- a/client/src/app/instance/search/components/criteria/search-type/between-date.component.ts +++ b/client/src/app/instance/search/components/criteria/search-type/between-date.component.ts @@ -11,13 +11,18 @@ import { Criterion, BetweenCriterion } from 'src/app/instance/store/models'; export class BetweenDateComponent extends AbstractSearchTypeComponent { constructor() { super(); + // dateRange is desabled when the user select null or not null + if(! this.nullOrNotNull){ this.form = new FormGroup({ - dateRange: new FormControl('', [Validators.required]) + dateRange: new FormControl('', [Validators.required]), }); + } } setCriterion(criterion: Criterion) { super.setCriterion(criterion); + + if (criterion) { const betweenCriterion = criterion as BetweenCriterion; this.form.controls.dateRange.setValue([ @@ -26,7 +31,7 @@ export class BetweenDateComponent extends AbstractSearchTypeComponent { ]); } } - + /** * Return new criterion * @@ -51,6 +56,15 @@ export class BetweenDateComponent extends AbstractSearchTypeComponent { * * @return string */ + labelOnChange(value: string) { + if (value === 'nl' || value === 'nnl') { + this.nullOrNotNull = value; + this.form.controls.dateRange.disable(); + } else { + this.form.controls.dateRange.enable(); + } + } + getDateString(date: Date): string { const month = ('0' + (date.getMonth() + 1)).slice(-2); const day = ('0' + (date.getDate())).slice(-2);