From 691c9744fd15bbf00219f17f0c1470f8fbfa7aa2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Grand?= <francois.grand@inrae.fr>
Date: Thu, 23 Mar 2023 14:38:46 +0100
Subject: [PATCH] refactor: MacroRugoRemous: add error message to target PAM
 select

refs #609
---
 .../elements/select/select-field-target-pam.ts  | 17 ++++++++++++++++-
 src/locale/messages.en.json                     |  3 ++-
 src/locale/messages.fr.json                     |  3 ++-
 3 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/src/app/formulaire/elements/select/select-field-target-pam.ts b/src/app/formulaire/elements/select/select-field-target-pam.ts
index 0e699ac25..5a5a7620c 100644
--- a/src/app/formulaire/elements/select/select-field-target-pam.ts
+++ b/src/app/formulaire/elements/select/select-field-target-pam.ts
@@ -1,8 +1,9 @@
 import { ServiceFactory } from "app/services/service-factory";
 import { decodeHtml } from "../../../util/util";
-import { CalculatorType, MacroRugoRemous } from "jalhyd";
+import { CalculatorType, MacroRugoRemous, Message, MessageCode, Session } from "jalhyd";
 import { SelectField } from "./select-field";
 import { FormulaireNode } from "../formulaire-node";
+import { SelectEntry } from "./select-entry";
 
 // Courbe de remous dans une passe à macro-rugo.
 export class SelectFieldTargetPam extends SelectField {
@@ -37,4 +38,18 @@ export class SelectFieldTargetPam extends SelectField {
         // do not override localisation done in populate()
         // ie. avoid what is done by SelectField.updateLocalisation()
     }
+
+    public get errorMessage(): Message {
+        const v = this.getValue();
+        if (v instanceof SelectEntry) {
+            const nubUid = v.value;
+            const nub = Session.getInstance().findNubByUid(nubUid);
+            if (nub.resultHasMultipleValues()) {
+                return new Message(MessageCode.ERROR_MACRORUGOREMOUS_VARIATED_TARGET_PAM);
+            }
+            else {
+                return undefined;
+            }
+        }
+    }
 }
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index db4e3e018..a5f438b7e 100755
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -777,5 +777,6 @@
     "INFO_VERIF_SPECIES_NUB_OK": "Crossability criteria are met for custom species FORM_ID_%uid%",
     "ERROR_VERIF_PAB_WALL_NOT_CROSSABLE": "Wall #%N% is not crossable",
     "ERROR_VERIF_PAB_DW_NOT_CROSSABLE": "Downwall is not crossable",
-    "WARNING_VERIF_PAR_SPECIES_GROUP": "Species groups 3a, 3b et 7b are discouraged for this pass type"
+    "WARNING_VERIF_PAR_SPECIES_GROUP": "Species groups 3a, 3b et 7b are discouraged for this pass type",
+    "ERROR_MACRORUGOREMOUS_VARIATED_TARGET_PAM": "Target rock-ramp has variated parameters"
 }
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index e3f2fb207..28725f79a 100755
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -778,5 +778,6 @@
     "INFO_VERIF_SPECIES_NUB_OK": "FORM_ID_%uid%&nbsp;: OK",
     "ERROR_VERIF_PAB_WALL_NOT_CROSSABLE": "La cloison n°%N% n'est pas franchissable",
     "ERROR_VERIF_PAB_DW_NOT_CROSSABLE": "La cloison aval n'est pas franchissable",
-    "WARNING_VERIF_PAR_SPECIES_GROUP": "Les groupes d'espèces 3a, 3b et 7b sont déconseillés pour ce type de passe"
+    "WARNING_VERIF_PAR_SPECIES_GROUP": "Les groupes d'espèces 3a, 3b et 7b sont déconseillés pour ce type de passe",
+    "ERROR_MACRORUGOREMOUS_VARIATED_TARGET_PAM": "La passe cible comporte des paramètres variés"
 }
\ No newline at end of file
-- 
GitLab