From 91b62e818ea9a21ce75068c1c45323a2f71f14e5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Tue, 24 May 2022 17:42:04 +0200
Subject: [PATCH] fix: calculate enabled button of a calculator depends on
 other calculator validity status

refs #544
---
 src/app/components/field-set/field-set.component.ts         | 6 +++---
 .../fieldset-container/fieldset-container.component.ts      | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/app/components/field-set/field-set.component.ts b/src/app/components/field-set/field-set.component.ts
index 36d2701bf..f3095f8f7 100644
--- a/src/app/components/field-set/field-set.component.ts
+++ b/src/app/components/field-set/field-set.component.ts
@@ -266,10 +266,10 @@ export class FieldSetComponent implements DoCheck {
         return (paramsAreValid && selectAreValid);
     }
 
-    private updateValidity() {
+    private updateValidity(forceEmit: boolean = false) {
         // global validity
         this._isValid.value = this.computeValidity();
-        if (this._isValid.changed) {
+        if (forceEmit || this._isValid.changed) {
             this.validChange.emit();
         }
     }
@@ -282,7 +282,7 @@ export class FieldSetComponent implements DoCheck {
     }
 
     public ngDoCheck() {
-        this.updateValidity();
+        this.updateValidity(true);
     }
 
     /**
diff --git a/src/app/components/fieldset-container/fieldset-container.component.ts b/src/app/components/fieldset-container/fieldset-container.component.ts
index 74fac2031..7a59f0342 100644
--- a/src/app/components/fieldset-container/fieldset-container.component.ts
+++ b/src/app/components/fieldset-container/fieldset-container.component.ts
@@ -108,7 +108,7 @@ export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
     }
 
     public ngDoCheck() {
-        this.updateValidity();
+        this.updateValidity(true);
     }
 
     /**
@@ -142,10 +142,10 @@ export class FieldsetContainerComponent implements DoCheck, AfterViewInit {
         return res;
     }
 
-    private updateValidity() {
+    private updateValidity(forceEmit: boolean = false) {
         // global validity
         this._isValid.value = this.computeValidity();
-        if (this._isValid.changed) {
+        if (forceEmit || this._isValid.changed) {
             this.validChange.emit();
         }
     }
-- 
GitLab