Skip to content
Snippets Groups Projects
Commit 42a9ecd6 authored by Angapay Divin's avatar Angapay Divin
Browse files

inprove betweenDate searchType select box

parent 6a82fd4a
No related branches found
No related tags found
2 merge requests!72Develop,!38Resolve "Réorganisation criterion (null, not null)"
...@@ -11,12 +11,9 @@ import { Criterion, BetweenCriterion } from 'src/app/instance/store/models'; ...@@ -11,12 +11,9 @@ import { Criterion, BetweenCriterion } from 'src/app/instance/store/models';
export class BetweenDateComponent extends AbstractSearchTypeComponent { export class BetweenDateComponent extends AbstractSearchTypeComponent {
constructor() { constructor() {
super(); super();
// dateRange is desabled when the user select null or not null
if(! this.nullOrNotNull){
this.form = new FormGroup({ this.form = new FormGroup({
dateRange: new FormControl('', [Validators.required]), dateRange: new FormControl('', [Validators.required]),
}); });
}
} }
setCriterion(criterion: Criterion) { setCriterion(criterion: Criterion) {
...@@ -61,6 +58,7 @@ export class BetweenDateComponent extends AbstractSearchTypeComponent { ...@@ -61,6 +58,7 @@ export class BetweenDateComponent extends AbstractSearchTypeComponent {
this.nullOrNotNull = value; this.nullOrNotNull = value;
this.form.controls.dateRange.disable(); this.form.controls.dateRange.disable();
} else { } else {
this.nullOrNotNull = '';
this.form.controls.dateRange.enable(); this.form.controls.dateRange.enable();
} }
} }
......
<form [formGroup]="form" novalidate> <form [formGroup]="form" novalidate>
<div class="row form-group"> <div class="row form-group">
<div class="col-md-3 col-sm-auto pr-sm-1 mb-1 mb-sm-0"> <div class="col-md-3 col-sm-auto pr-sm-1 mb-1 mb-sm-0">
<div class="operator_readonly">Min</div> <select class="custom-select" (change)="labelOnChange($event.target.value)">
<option [value]="">Min/Max</option>
<option [value]="'nl'">Null</option>
<option [value]="'nnl'">Not Null</option>
</select>
</div> </div>
<div class="w-100 d-block d-sm-none"></div> <div class="w-100 d-block d-sm-none"></div>
<div class="col pl-sm-1 mb-1 mb-sm-0"> <div class="col pl-sm-1 mb-1 mb-sm-0">
<input type="text" class="form-control" [placeholder]="getPlaceholderMin()" formControlName="min" autocomplete="off" /> <input type="text" class="form-control" [placeholder]="getPlaceholderMin()" formControlName="min" autocomplete="off" />
</div> </div>
<div class="w-100 d-block d-lg-none"></div> <div class="w-100 d-block d-lg-none"></div>
<div class="col col-sm-3 col-lg-auto pr-sm-1 mb-1">
<div class="operator_readonly">Max</div>
</div>
<div class="w-100 d-block d-sm-none"></div> <div class="w-100 d-block d-sm-none"></div>
<div class="col pl-sm-1"> <div class="col pl-sm-1">
<input type="text" class="form-control" [placeholder]="getPlaceholderMax()" formControlName="max" autocomplete="off" /> <input type="text" class="form-control" [placeholder]="getPlaceholderMax()" formControlName="max" autocomplete="off" />
......
...@@ -42,6 +42,21 @@ export class BetweenComponent extends AbstractSearchTypeComponent { ...@@ -42,6 +42,21 @@ export class BetweenComponent extends AbstractSearchTypeComponent {
return this.attribute.placeholder_min; return this.attribute.placeholder_min;
} }
} }
labelOnChange(value: string) {
if (value === 'nl' || value === 'nnl') {
this.nullOrNotNull = value;
this.form.controls.min.disable();
this.form.controls.max.disable();
} else {
if(!(this.form.controls.min.value || this.form.controls.max.value)){
this.nullOrNotNull = '';
}
this.form.controls.max.enable();
this.form.controls.min.enable();
}
}
/** /**
* Returns placeholder for the maximum value. * Returns placeholder for the maximum value.
...@@ -59,7 +74,5 @@ export class BetweenComponent extends AbstractSearchTypeComponent { ...@@ -59,7 +74,5 @@ export class BetweenComponent extends AbstractSearchTypeComponent {
isValid() { isValid() {
return this.form.controls.min.value || this.form.controls.max.value; return this.form.controls.min.value || this.form.controls.max.value;
} }
compareFn(c1: string|number, c2: string|number): boolean {
return c1 === c2;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment