From f591bb50e28203c19241fb2804f3ef0091bdbbaa Mon Sep 17 00:00:00 2001
From: "francois.grand" <francois.grand@irstea.fr>
Date: Tue, 19 Jun 2018 11:54:54 +0200
Subject: [PATCH]  #48 modifs suite au renommage dans jalHyd de
 getLinkableParameters en getLinkableValues

---
 .../param-link/param-link.component.ts        | 23 +++++++++++++++----
 src/app/formulaire/ngparam.ts                 |  2 +-
 .../services/formulaire/formulaire.service.ts | 19 +++++++++++++--
 3 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/src/app/components/param-link/param-link.component.ts b/src/app/components/param-link/param-link.component.ts
index 4ea99b759..e3efcd9ac 100644
--- a/src/app/components/param-link/param-link.component.ts
+++ b/src/app/components/param-link/param-link.component.ts
@@ -29,7 +29,7 @@ export class ParamLinkComponent implements OnChanges, Observer, OnDestroy {
 
     /**
      * liste des paramètres liables sous la forme
-     * {"param":<paramètre liable>, "nub":<Nub d'origine du paramètre>, "formTitle":<nom de la calculette liée au nub>}
+     * {"value":<valeur liable>, "nub":<Nub d'origine du paramètre>, "formTitle":<nom de la calculette liée au nub>}
      */
     private _linkableParams: any[];
 
@@ -56,7 +56,7 @@ export class ParamLinkComponent implements OnChanges, Observer, OnDestroy {
 
         let i = 0;
         for (const e of this._linkableParams)
-            if (this._linkableParams[i].param.uid == next.param.uid) {
+            if (this._linkableParams[i].value.uid == next.value.uid) {
                 this.linkTo(i);
                 break;
             }
@@ -78,11 +78,23 @@ export class ParamLinkComponent implements OnChanges, Observer, OnDestroy {
         return undefined;
     }
 
+    //     // le paramètre est il déjà lié à une valeur ? si oui laquelle ?
+    //     if(this._currentIndex === -1 && this._param.valueMode == ParamValueMode.LINK && this._linkableParams !== undefined) {
+    //     let i = 0;
+    //     for (const e of this._linkableParams)
+    //         if (e.param.uid === this._param.paramDefinition.re) {
+    //             this._currentIndex = i;
+    //             break;
+    //         }
+    //         else
+    //             i++;
+    // }
+
     /**
      * attribut "label" d'une entrée du select des paramètres
      */
     private selectItemLabel(i: any) {
-        const s = i.param.symbol;
+        const s = i.value.name;
         const c = i.formTitle;
         return `${s} (${c})`;
     }
@@ -96,13 +108,14 @@ export class ParamLinkComponent implements OnChanges, Observer, OnDestroy {
             this._currentIndex = index;
             const lp = this._linkableParams[index];
 
-            this._param.linkToParameter(lp.nub, lp.param);
+            this._param.linkToParameter(lp.nub, lp.value);
         }
     }
 
     private updateParamList() {
         // liste des paramètres liables
-        this._linkableParams = this._formService.getLinkableParameters(this._param);
+        // this._linkableParams = this._formService.getLinkableParameters(this._param);
+        this._linkableParams = this._formService.getLinkableValues(this._param);
 
         // initialisation de l'indice courant
         if (this._linkableParams.length > 0) {
diff --git a/src/app/formulaire/ngparam.ts b/src/app/formulaire/ngparam.ts
index fee5e2f71..6972f2b26 100644
--- a/src/app/formulaire/ngparam.ts
+++ b/src/app/formulaire/ngparam.ts
@@ -120,7 +120,7 @@ export class NgParameter extends InputField {
      * crée le lien avec un paramètre
      */
     public linkToParameter(n: Nub, p: ParamDefinition) {
-        const changed: boolean = this.paramDefinition.referencedObject !== n || this.paramDefinition.referenceDesc !== p.symbol;
+        const changed: boolean = this.paramDefinition.referencedNub !== n || this.paramDefinition.referenceDefinition !== p.symbol;
         if (changed) {
             this.valueMode = ParamValueMode.LINK;
             this._paramDef.defineReference(n, p.symbol);
diff --git a/src/app/services/formulaire/formulaire.service.ts b/src/app/services/formulaire/formulaire.service.ts
index 29a370edc..07a2cee36 100644
--- a/src/app/services/formulaire/formulaire.service.ts
+++ b/src/app/services/formulaire/formulaire.service.ts
@@ -475,13 +475,28 @@ export class FormulaireService extends Observable {
      * {"param":<paramètre lié>, "nub":<Nub d'origine du paramètre lié>, "formTitle":<nom de la calculette liée au nub>}
      * @param symbol symbole (Q, J, ...) du paramètre qui sert de clé de recherche des paramètres liables
      */
-    public getLinkableParameters(p: NgParameter): any[] {
+    // public getLinkableParameters(p: NgParameter): any[] {
+    //     let res: any[] = [];
+
+    //     if (p !== undefined)
+    //         for (const f of this._formulaires) {
+    //             const sn = f.currentSessionNub;
+    //             const ps = sn.getLinkableParameters(p.paramDefinition);
+    //             for (const np of ps) {
+    //                 np["formTitle"] = f.calculatorName;
+    //                 res.push(np);
+    //             }
+    //         }
+
+    //     return res;
+    // }
+    public getLinkableValues(p: NgParameter): any[] {
         let res: any[] = [];
 
         if (p !== undefined)
             for (const f of this._formulaires) {
                 const sn = f.currentSessionNub;
-                const ps = sn.getLinkableParameters(p.paramDefinition);
+                const ps = sn.getLinkableValues(p.paramDefinition);
                 for (const np of ps) {
                     np["formTitle"] = f.calculatorName;
                     res.push(np);
-- 
GitLab