From c3c106733b98e9366cc42e623c12cd90b3003102 Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Wed, 23 Sep 2020 15:04:15 +0200
Subject: [PATCH] PrebarrageResults: protection against empty result

---
 .../pb-results/pb-results.component.ts         | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/app/components/pb-results/pb-results.component.ts b/src/app/components/pb-results/pb-results.component.ts
index 80fd52db4..a5136f9e9 100644
--- a/src/app/components/pb-results/pb-results.component.ts
+++ b/src/app/components/pb-results/pb-results.component.ts
@@ -48,7 +48,7 @@ export class PbResultsComponent {
 
     // true if basin results at current iteration have data
     public get basinResultsHaveData(): boolean {
-        return this._pbResults && this._pbResults.basinResultsHaveData;
+        return this._pbResults && this._pbResults.result && ! this._pbResults.result.hasOnlyErrors && this._pbResults.basinResultsHaveData;
     }
 
     // true if wall results are present
@@ -178,18 +178,22 @@ export class PbResultsComponent {
                     l.addLog(this._pbResults.result.resultElements[vi].log);
                 }
                 // logs des enfants pour l'itération en cours
-                for (const pbc of pb.children) {
-                    if (pbc?.result?.hasResultElements() && pbc.result.resultElements[vi]?.hasLog()) {
-                        l.addLog(pbc.result.resultElements[vi].log);
+                if (pb !== undefined) {
+                    for (const pbc of pb.children) {
+                        if (pbc?.result?.hasResultElements() && pbc.result.resultElements[vi]?.hasLog()) {
+                            l.addLog(pbc.result.resultElements[vi].log);
+                        }
                     }
                 }
             } else {
                 // B. si aucun paramètre ne varie
                 this.mergeGlobalLog(this._pbResults.result, l); // faut bien mettre le log global quelque part
                 // logs des enfants
-                for (const pbc of pb.children) {
-                    if (pbc?.result?.hasResultElements() && pbc.result.resultElement?.hasLog()) {
-                        l.addLog(pbc.result.resultElement.log);
+                if (pb !== undefined) {
+                    for (const pbc of pb.children) {
+                        if (pbc?.result?.hasResultElements() && pbc.result.resultElement?.hasLog()) {
+                            l.addLog(pbc.result.resultElement.log);
+                        }
                     }
                 }
             }
-- 
GitLab