From b81e23e7491e87ce96a572c645a226b5ea998a8a Mon Sep 17 00:00:00 2001
From: Mathias Chouet <mathias.chouet@irstea.fr>
Date: Wed, 22 Apr 2020 11:14:41 +0200
Subject: [PATCH] Verificateur: make jet type selector's disabled state persist
 after calculation

---
 .../formulaire/definition/form-verificateur.ts | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/app/formulaire/definition/form-verificateur.ts b/src/app/formulaire/definition/form-verificateur.ts
index 92d538c98..6c07e62c5 100644
--- a/src/app/formulaire/definition/form-verificateur.ts
+++ b/src/app/formulaire/definition/form-verificateur.ts
@@ -30,9 +30,7 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
             if (sender.id === "select_target_pass" && data.action === "select") {
                 // update Verificateur property: Pass to check
                 this._currentNub.properties.setPropValue("nubToVerify", data.value ? data.value.value : undefined);
-                // refresh jet type selector
-                const ntv = (this._currentNub as Verificateur).nubToVerify;
-                (this.getFormulaireNodeById("select_pab_jet_type") as SelectField).disabled = ! (ntv !== undefined && ntv.calcType === CalculatorType.Pab);
+                this.refreshJetTypeSelector();
 
             } else if (sender.id === "select_species_list" && data.action === "select") {
                 // update Verificateur property: Species list (string[])
@@ -43,4 +41,18 @@ export class FormulaireVerificateur extends FormulaireFixedVar {
         }
     }
 
+    protected compute() {
+        this.runNubCalc(this.currentNub);
+        this.reaffectResultComponents();
+        // do not refreshFieldsets() (useless here) or jet type selector's disabled state will be reset
+    }
+
+    /**
+     * Disables Jet Type selector if target pass is not a Pab
+     */
+    protected refreshJetTypeSelector() {
+        const ntv = (this._currentNub as Verificateur).nubToVerify;
+        (this.getFormulaireNodeById("select_pab_jet_type") as SelectField).disabled = ! (ntv !== undefined && ntv.calcType === CalculatorType.Pab);
+    }
+
 }
-- 
GitLab