From 2d4286d89837f3f6d6ad7024bf6b92d28ffb8d5d Mon Sep 17 00:00:00 2001
From: Angapay Divin <divin.angapay@lam.fr>
Date: Wed, 8 Jun 2022 11:41:55 +0200
Subject: [PATCH] make  selector desabled in checkbox searchTYPE when the user
 validate a criteria

---
 .../search-type/checkbox.component.html       |  2 +-
 .../search-type/checkbox.component.ts         | 31 ++++++++++---------
 2 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/client/src/app/instance/search/components/criteria/search-type/checkbox.component.html b/client/src/app/instance/search/components/criteria/search-type/checkbox.component.html
index e524f736..766e481c 100644
--- a/client/src/app/instance/search/components/criteria/search-type/checkbox.component.html
+++ b/client/src/app/instance/search/components/criteria/search-type/checkbox.component.html
@@ -2,7 +2,7 @@
     <div class="row form-group">
         <div class="col-md-3 col-sm-auto pr-sm-1 mb-1 mb-lg-0">
             <select class="custom-select" (change)="labelOnChange()" formControlName="label">
-                <option [value]="">In</option>
+                <option [value]="'In'">In</option>
                 <option [value]="'nl'">Null</option>
                 <option [value]="'nnl'">Not Null</option>
             </select>
diff --git a/client/src/app/instance/search/components/criteria/search-type/checkbox.component.ts b/client/src/app/instance/search/components/criteria/search-type/checkbox.component.ts
index 7eb30b45..e5f610ad 100644
--- a/client/src/app/instance/search/components/criteria/search-type/checkbox.component.ts
+++ b/client/src/app/instance/search/components/criteria/search-type/checkbox.component.ts
@@ -8,13 +8,13 @@ import { Attribute } from 'src/app/metamodel/models';
 @Component({
     selector: 'app-checkbox',
     templateUrl: 'checkbox.component.html',
-    styleUrls: ['checkbox.component.scss' ],
+    styleUrls: ['checkbox.component.scss'],
 })
 export class CheckboxComponent extends AbstractSearchTypeComponent {
     constructor() {
         super();
         this.form = new FormGroup({
-            label: new FormControl('')
+            label: new FormControl(''),
         });
     }
 
@@ -30,6 +30,7 @@ export class CheckboxComponent extends AbstractSearchTypeComponent {
 
     setCriterion(criterion: Criterion) {
         super.setCriterion(criterion);
+        this.form.controls.label.setValue('In');
         if (criterion) {
             for (let i = 0; i < this.attribute.options.length; i++) {
                 if ((criterion as SelectMultipleCriterion).options.find(o => o.label === this.attribute.options[i].label)) {
@@ -38,7 +39,7 @@ export class CheckboxComponent extends AbstractSearchTypeComponent {
             }
         }
     }
-    
+
     /**
      * Return new criterion
      *
@@ -79,20 +80,20 @@ export class CheckboxComponent extends AbstractSearchTypeComponent {
         // If one of the checkboxes is checked returns true else returns false
         return this.getCheckboxes().controls.filter(formControl => formControl.value).length > 0;
     }
-   
+
     labelOnChange() {
-        if (this.form.controls.label.value === 'nl' || this.form.controls.label.value  === 'nnl') {
-          
-         this.getCheckboxes().controls.map((value, index)=>{
-             value.disable();
-         })
-         
+        if (this.form.controls.label.value === 'nl' || this.form.controls.label.value === 'nnl') {
+            this.nullOrNotNull = this.form.controls.label.value;
+            this.getCheckboxes().controls.map((value, index) => {
+                value.disable();
+            })
+
         } else {
-           this.nullOrNotNull = '';
-           this.getCheckboxes().controls.map((value, index)=>{
-            value.enable();
-        })
-          
+            this.nullOrNotNull = '';
+            this.getCheckboxes().controls.map((value, index) => {
+                value.enable();
+            })
+
         }
     }
 }
-- 
GitLab