From 334137a3ed0c457bbbb338e377a90630dd62fae7 Mon Sep 17 00:00:00 2001
From: "francois.grand" <francois.grand@irstea.fr>
Date: Thu, 28 Jun 2018 10:02:08 +0200
Subject: [PATCH] =?UTF-8?q?=20#48=20FormDefParamToCalculate.processRadioSt?=
 =?UTF-8?q?ateChange()=20:=20correction=20d'un=20crash=20quand=20on=20pass?=
 =?UTF-8?q?e=20en=20mode=20li=C3=A9=20et=20que=20la=20valeur=20cible=20n'e?=
 =?UTF-8?q?st=20pas=20un=20param=C3=A8tre?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../definition/form-def-paramcalc.ts          | 29 ++++++++++++-------
 1 file changed, 18 insertions(+), 11 deletions(-)

diff --git a/src/app/formulaire/definition/form-def-paramcalc.ts b/src/app/formulaire/definition/form-def-paramcalc.ts
index 4852c9449..de7d95b77 100644
--- a/src/app/formulaire/definition/form-def-paramcalc.ts
+++ b/src/app/formulaire/definition/form-def-paramcalc.ts
@@ -68,18 +68,25 @@ export class FormDefParamToCalculate extends FormDefFixedVar {
                         break;
 
                     case ParamValueMode.LINK:  // nouvel état
-                        // mode du paramètre référencé
-                        const refParamValues = sourceParam.paramDefinition.referencedParamValues;
-                        switch (refParamValues.valueMode) {
-                            case ParamValueMode.MINMAX:
-                            case ParamValueMode.LISTE:
-                            case ParamValueMode.CALCUL:
-                                super.resetOtherRadio(sourceParam);
-                                this.setDefault();
-                                break;
+                        if (sourceParam.paramDefinition.hasMultipleValues) {
+                            super.resetOtherRadio(sourceParam);
+                            this.setDefault();
+                        }
+                        else {
+                            // mode du paramètre référencé
+                            const refParamValues = sourceParam.paramDefinition.referencedParamValues;
+                            if (refParamValues !== undefined)
+                                switch (refParamValues.valueMode) {
+                                    case ParamValueMode.MINMAX:
+                                    case ParamValueMode.LISTE:
+                                    case ParamValueMode.CALCUL:
+                                        super.resetOtherRadio(sourceParam);
+                                        this.setDefault();
+                                        break;
 
-                            case ParamValueMode.LINK:
-                                throw new Error(`références de paramètre en chaîne non pris en charge`); // cas à traiter
+                                    case ParamValueMode.LINK:
+                                        throw new Error(`références de paramètre en chaîne non pris en charge`); // cas à traiter
+                                }
                         }
                         break;
                 }
-- 
GitLab