From 05b2ac117d56bc0d5bd5825b2a7f1125d078cb49 Mon Sep 17 00:00:00 2001
From: David Dorchies <david.dorchies@irstea.fr>
Date: Wed, 26 Jun 2019 16:15:10 +0200
Subject: [PATCH] #93 Formatting tables of edition and results with a first
 calculation that works!

---
 src/app/calculators/cloisons/cloisons.en.json | 14 +----
 src/app/calculators/cloisons/cloisons.fr.json |  2 -
 .../pab-results-table.component.ts            | 63 +++++++------------
 .../concrete/form-regime-uniforme.ts          |  3 +-
 .../formulaire/definition/form-compute-pab.ts | 10 ---
 src/app/results/pab-results.ts                | 14 +----
 src/app/results/plottable-pab-results.ts      | 50 ++-------------
 src/locale/messages.en.json                   |  2 +
 src/locale/messages.fr.json                   |  2 +
 9 files changed, 36 insertions(+), 124 deletions(-)

diff --git a/src/app/calculators/cloisons/cloisons.en.json b/src/app/calculators/cloisons/cloisons.en.json
index 681065b65..65b2c7c89 100644
--- a/src/app/calculators/cloisons/cloisons.en.json
+++ b/src/app/calculators/cloisons/cloisons.en.json
@@ -1,16 +1,8 @@
 {
-    "Q": "Débit total",
-    "ZR": "Cote du lit amont",
-    "LB": "Longueur du bassin",
-    "BB": "Largeur du bassin",
-    "PB": "Profondeur moyenne du bassin",
-    "DH": "Chute",
+    "Q": "Total discharge",
+    "ZR": "Upstream bed elevation",
+    "PB": "Pool mean depth",
     "h1": "Head",
-    "S": "Surface de l'orifice",
-    "ZRAM": "Bottom elevation",
-    "alpha2": "Demi-angle au sommet (°)",
-    "BT": "Demi-ouverture du triangle (m)",
-    "ZT": "Cote haute du triangle (m)",
     "select_ouvrage_seuil_triang": "Triangular weir",
     "select_ouvrage_seuil_triangtrunc": "Truncated triangular weir",
     "select_ouvrage_orifice": "Orifice",
diff --git a/src/app/calculators/cloisons/cloisons.fr.json b/src/app/calculators/cloisons/cloisons.fr.json
index 43a188d68..cc29c123f 100644
--- a/src/app/calculators/cloisons/cloisons.fr.json
+++ b/src/app/calculators/cloisons/cloisons.fr.json
@@ -1,8 +1,6 @@
 {
     "Q": "Débit total",
     "ZR": "Cote du lit amont",
-    "LB": "Longueur du bassin",
-    "BB": "Largeur du bassin",
     "PB": "Profondeur moyenne du bassin",
     "DH": "Chute",
     "h1": "Charge",
diff --git a/src/app/components/pab-results/pab-results-table.component.ts b/src/app/components/pab-results/pab-results-table.component.ts
index af0ebe4df..ac9fda71d 100644
--- a/src/app/components/pab-results/pab-results-table.component.ts
+++ b/src/app/components/pab-results/pab-results-table.component.ts
@@ -60,61 +60,40 @@ export class PabResultsTableComponent extends ResultsComponent {
             }
 
             // lines 2 - n-1
-            for (let i = 0; i < pr.cloisonsResults.length - 1; i++) {
+            for (let i = 0; i < pr.cloisonsResults.length; i++) {
                 if (
                     pr.cloisonsResults[i].vCalc
-                    && pr.cloisonsResults[i + 1].vCalc
                 ) {
-                    const ZRAM = pr.cloisonsResults[i].getExtraResult("ZRAM");
-                    const PV = pr.cloisonsResults[i].getExtraResult("PV");
-                    const YMOY = pr.cloisonsResults[i].getExtraResult("YMOY");
-                    const ZRB = pr.cloisonsResults[i].getExtraResult("ZRB");
+                    const r2n = pr.cloisonsResults[i].resultElement.extraResults;
+                    let Z1: number;
+                    if (i < pr.cloisonsResults.length - 1) {
+                        Z1 = pr.cloisonsResults[i + 1].vCalc;
+                    } else {
+                        Z1 = pr.cloisonAvalResults.vCalc;
+                    }
                     this._dataSet.push([
                         i + 1, // n° cloison
-                        pr.cloisonsResults[i + 1].vCalc.toFixed(nDigits), // Z
-                        (ZRAM !== undefined) ? ZRAM.toFixed(nDigits) : "", // ZRAM
-                        (pr.cloisonsResults[i].vCalc - pr.cloisonsResults[i + 1].vCalc).toFixed(nDigits), // DH
-                        pr.cloisonsQ[i].toFixed(nDigits), // Q
-                        (PV !== undefined) ? PV.toFixed(nDigits) : "", // PV
-                        (YMOY !== undefined) ? YMOY.toFixed(nDigits) : "", // YMOY
-                        (ZRB !== undefined) ? ZRB.toFixed(nDigits) : "", // ZRB
-                        pr.bassinsQA[i] // QA
+                        Z1.toFixed(nDigits), // Z
+                        r2n.ZRAM.toFixed(nDigits),
+                        r2n.DH.toFixed(nDigits),
+                        r2n.Q.toFixed(nDigits),
+                        r2n.PV.toFixed(nDigits),
+                        r2n.YMOY.toFixed(nDigits),
+                        r2n.ZRMB.toFixed(nDigits),
+                        r2n.QA // QA
                     ]);
                 }
             }
 
-            // line n
-            const l = pr.cloisonsResults.length;
-            if (
-                pr.cloisonsResults[l - 1].vCalc
-                && pr.cloisonAvalResults.vCalc
-            ) {
-                const nZRAM = pr.cloisonsResults[l - 1].getExtraResult("ZRAM");
-                const nPV = pr.cloisonsResults[l - 1].getExtraResult("PV");
-                const nY = pr.cloisonsResults[l - 1].getExtraResult("YMOY");
-                const nZRB = pr.cloisonsResults[l - 1].getExtraResult("ZRB");
-                this._dataSet.push([
-                    l, // n° cloison
-                    pr.cloisonAvalResults.vCalc.toFixed(nDigits), // Z
-                    (nZRAM !== undefined) ? nZRAM.toFixed(nDigits) : "", // ZRAM
-                    (pr.cloisonsResults[l - 1].vCalc - pr.cloisonAvalResults.vCalc).toFixed(nDigits), // DH
-                    pr.cloisonsQ[l - 1].toFixed(nDigits), // Q
-                    (nPV !== undefined) ? nPV.toFixed(nDigits) : "", // PV
-                    (nY !== undefined) ? nY.toFixed(nDigits) : "", // YMOY
-                    (nZRB !== undefined) ? nZRB.toFixed(nDigits) : "", // ZRB
-                    pr.bassinsQA[l - 1] // QA
-                ]);
-            }
-
             // downstream line
             if (pr.cloisonAvalResults.vCalc) {
-                const caZRAM = pr.cloisonAvalResults.getExtraResult("ZRAM");
+                const rln = pr.cloisonAvalResults.resultElement.extraResults;
                 this._dataSet.push([
                     this.intlService.localizeText("INFO_LIB_AVAL"), // n° cloison
-                    pr.Z2.toFixed(nDigits), // Z
-                    (caZRAM !== undefined) ? caZRAM.toFixed(nDigits) : "", // ZRAM
-                    (pr.cloisonAvalResults.vCalc - pr.Z2).toFixed(nDigits), // DH
-                    pr.cloisonAvalQ.toFixed(nDigits), // Q
+                    pr.Z2.toFixed(nDigits),
+                    rln.ZRAM.toFixed(nDigits),
+                    rln.DH.toFixed(nDigits),
+                    rln.Q.toFixed(nDigits),
                     "", "", "", ""
                 ]);
             }
diff --git a/src/app/formulaire/definition/concrete/form-regime-uniforme.ts b/src/app/formulaire/definition/concrete/form-regime-uniforme.ts
index d7d7c8fbe..79ad66e52 100644
--- a/src/app/formulaire/definition/concrete/form-regime-uniforme.ts
+++ b/src/app/formulaire/definition/concrete/form-regime-uniforme.ts
@@ -1,8 +1,7 @@
-import { IObservable, Observer, Session } from "jalhyd";
+import { IObservable, Observer, Session, SectionNub } from "jalhyd";
 import { FormDefSection } from "../form-def-section";
 import { FieldSet } from "../../fieldset";
 import { FormulaireBase } from "./form-base";
-import { SectionNub } from "jalhyd/build/section/section_nub";
 
 export class FormulaireRegimeUniforme extends FormulaireBase implements Observer {
 
diff --git a/src/app/formulaire/definition/form-compute-pab.ts b/src/app/formulaire/definition/form-compute-pab.ts
index c5cfd59c2..58f52cc07 100644
--- a/src/app/formulaire/definition/form-compute-pab.ts
+++ b/src/app/formulaire/definition/form-compute-pab.ts
@@ -46,22 +46,12 @@ export class FormComputePab extends FormCompute {
 
         // résultat de chaque cloison
         const cr: Result[] = [];
-        // valeur de Q pour chaque cloison
-        const cq: number[] = [];
-        // valeur de QA pour chaque bassin
-        const bqa: number[] = [];
         for (const c of pab.children) {
             cr.push(c.result);
-            cq.push(c.prms.Q.v);
-            bqa.push(c.prms.QA.v);
         }
         pabr.cloisonsResults = cr,
-        pabr.cloisonsQ = cq,
-        pabr.bassinsQA = bqa;
         // résultat de la cloison aval
         pabr.cloisonAvalResults = pab.downWall.result;
-        // débit de la cloison aval
-        pabr.cloisonAvalQ = pab.downWall.prms.Q.v;
         // cote aval de la passe
         pabr.Z2 = pab.prms.Z2.v;
 
diff --git a/src/app/results/pab-results.ts b/src/app/results/pab-results.ts
index d87b882b3..592708994 100644
--- a/src/app/results/pab-results.ts
+++ b/src/app/results/pab-results.ts
@@ -9,18 +9,9 @@ export class PabResults extends CalculatedParamResults {
     /** résultats des modules Cloisons avant chaque bassin */
     public cloisonsResults: Result[];
 
-    /** valeur de Q pour chaque module Cloisons */
-    public cloisonsQ: number[];
-
-    /** valeur de QA pour chaque bassin */
-    public bassinsQA: number[];
-
     /** résultats du module ParallelStructure pour la cloison aval */
     public cloisonAvalResults: Result;
 
-    /** débit de la cloison aval */
-    public cloisonAvalQ: number;
-
     /** cote aval de l'ensemble de la passe */
     public Z2: number;
 
@@ -42,7 +33,7 @@ export class PabResults extends CalculatedParamResults {
             "Q",
             "PV",
             "YMOY",
-            "ZRB",
+            "ZRMB",
             "QA"
         ];
     }
@@ -68,10 +59,7 @@ export class PabResults extends CalculatedParamResults {
     public reset() {
         super.reset();
         this.cloisonsResults = [];
-        this.cloisonsQ = [];
-        this.bassinsQA = [];
         this.cloisonAvalResults = undefined;
-        this.cloisonAvalQ = undefined;
         this.Z2 = undefined;
     }
 
diff --git a/src/app/results/plottable-pab-results.ts b/src/app/results/plottable-pab-results.ts
index 27e5685d9..95d123e39 100644
--- a/src/app/results/plottable-pab-results.ts
+++ b/src/app/results/plottable-pab-results.ts
@@ -74,32 +74,17 @@ export class PlottablePabResults implements PlottableData {
                 break;
 
             case "DH":
-                data.push("");
-                for (let i = 0; i < l - 1; i++) {
-                    data.push((pr.cloisonsResults[i].vCalc - pr.cloisonsResults[i + 1].vCalc).toFixed(nDigits));
-                }
-                data.push((pr.cloisonsResults[l - 1].vCalc - pr.cloisonAvalResults.vCalc).toFixed(nDigits));
-                data.push((pr.cloisonAvalResults.vCalc - pr.Z2).toFixed(nDigits));
-                break;
-
             case "ZRAM":
+            case "Q":
                 data.push("");
                 for (let i = 0; i < l; i++) {
-                    const er = pr.cloisonsResults[i].getExtraResult("ZRAM");
+                    const er = pr.cloisonsResults[i].getExtraResult(symbol);
                     data.push((er !== undefined) ? er.toFixed(nDigits) : "");
                 }
-                const zrAval = pr.cloisonAvalResults.getExtraResult("ZRAM");
+                const zrAval = pr.cloisonAvalResults.getExtraResult(symbol);
                 data.push((zrAval !== undefined) ? zrAval.toFixed(nDigits) : "");
                 break;
 
-            case "Q":
-                data.push("");
-                for (let i = 0; i < l; i++) {
-                    data.push(pr.cloisonsQ[i].toFixed(nDigits));
-                }
-                data.push(pr.cloisonAvalQ.toFixed(nDigits));
-                break;
-
             case "Z":
                 for (let i = 0; i < l - 1; i++) {
                     data.push(pr.cloisonsResults[i].vCalc.toFixed(nDigits));
@@ -109,36 +94,13 @@ export class PlottablePabResults implements PlottableData {
                 break;
 
             case "PV":
-                data.push("");
-                for (let i = 0; i < l; i++) {
-                    const er = pr.cloisonsResults[i].getExtraResult("PV");
-                    data.push((er !== undefined) ? er.toFixed(nDigits) : "");
-                }
-                data.push("");
-                break;
-
             case "YMOY":
-                data.push("");
-                for (let i = 0; i < l; i++) {
-                    const er = pr.cloisonsResults[i].getExtraResult("YMOY");
-                    data.push((er !== undefined) ? er.toFixed(nDigits) : "");
-                }
-                data.push("");
-                break;
-
-            case "ZRB":
-                data.push("");
-                for (let i = 0; i < l; i++) {
-                    const er = pr.cloisonsResults[i].getExtraResult("ZRB");
-                    data.push((er !== undefined) ? er.toFixed(nDigits) : "");
-                }
-                data.push("");
-                break;
-
+            case "ZRMB":
             case "QA":
                 data.push("");
                 for (let i = 0; i < l; i++) {
-                    data.push(pr.bassinsQA[i].toFixed(nDigits));
+                    const er = pr.cloisonsResults[i].getExtraResult(symbol);
+                    data.push((er !== undefined) ? er.toFixed(nDigits) : "");
                 }
                 data.push("");
                 break;
diff --git a/src/locale/messages.en.json b/src/locale/messages.en.json
index beed8f8d1..047c1fd44 100644
--- a/src/locale/messages.en.json
+++ b/src/locale/messages.en.json
@@ -115,6 +115,7 @@
     "INFO_LIB_ALPHA2": "Half-angle at the apex",
     "INFO_LIB_AVAL": "Downstream",
     "INFO_LIB_B": "Surface width",
+    "INFO_LIB_BB": "Pool width",
     "INFO_LIB_BETA": "Beta coefficient",
     "INFO_LIB_BT": "Half opening of the triangle",
     "INFO_LIB_CD": "Discharge coefficient",
@@ -136,6 +137,7 @@
     "INFO_LIB_IMP": "Impulse",
     "INFO_LIB_J": "Head loss",
     "INFO_LIB_L": "Weir width",
+    "INFO_LIB_LB": "Pool length",
     "INFO_LIB_OUVRAGE_Q_MODE": "Mode",
     "INFO_LIB_OUVRAGE_Q_REGIME": "Regime",
     "INFO_LIB_OUVRAGE_Q": "Discharge",
diff --git a/src/locale/messages.fr.json b/src/locale/messages.fr.json
index 7ad7fb61d..82955df7a 100644
--- a/src/locale/messages.fr.json
+++ b/src/locale/messages.fr.json
@@ -115,6 +115,7 @@
     "INFO_LIB_ALPHA2": "Demi-angle au sommet",
     "INFO_LIB_AVAL": "Aval",
     "INFO_LIB_B": "Largeur au miroir",
+    "INFO_LIB_BB": "Largeur du bassin",
     "INFO_LIB_BETA": "Coefficient béta",
     "INFO_LIB_BT": "Demi-ouverture du triangle",
     "INFO_LIB_CD": "Coefficient de débit",
@@ -136,6 +137,7 @@
     "INFO_LIB_IMP": "Impulsion",
     "INFO_LIB_J": "Perte de charge",
     "INFO_LIB_L": "Largeur du déversoir",
+    "INFO_LIB_LB": "Longueur du bassin",
     "INFO_LIB_OUVRAGE_Q_ENUM_STRUCTUREFLOWMODE": "Type d'écoulement",
     "INFO_LIB_OUVRAGE_Q_ENUM_STRUCTUREFLOWREGIME": "Régime",
     "INFO_LIB_OUVRAGE_Q": "Débit",
-- 
GitLab