From 3d600c82e8b5b546ee2ab52c639d74dfc87eb38e Mon Sep 17 00:00:00 2001
From: "mathias.chouet" <mathias.chouet@irstea.fr>
Date: Mon, 29 Jul 2019 14:23:59 +0200
Subject: [PATCH] Load session: open first *newly loaded* calculator

---
 src/app/app.component.ts                          | 4 +++-
 src/app/services/formulaire/formulaire.service.ts | 5 +++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index d16c10fba..41b91040f 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -478,7 +478,9 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
             if (data.hasErrors) {
               this.notificationsService.notify(this.intlService.localizeText("ERROR_PROBLEM_LOADING_SESSION"), 3500);
             } else {
-              this.toFirstCalc();
+              if (data.loaded && data.loaded.length > 0) {
+                this.toCalc(data.loaded[0]);
+              }
             }
           })
           .catch((err) => {
diff --git a/src/app/services/formulaire/formulaire.service.ts b/src/app/services/formulaire/formulaire.service.ts
index 97016de31..a9db2718d 100644
--- a/src/app/services/formulaire/formulaire.service.ts
+++ b/src/app/services/formulaire/formulaire.service.ts
@@ -558,7 +558,7 @@ export class FormulaireService extends Observable {
      * @param f fichier session
      * @param formInfos infos sur les modules de calcul @see DialogLoadSessionComponent.calculators
      */
-    public async loadSession(f: File, formInfos: any[]): Promise<{ hasErrors: boolean }> {
+    public async loadSession(f: File, formInfos: any[]): Promise<{ hasErrors: boolean, loaded: string[] }> {
         try {
             const s = await this.readSingleFile(f);
             const uids: string[] = [];
@@ -582,7 +582,8 @@ export class FormulaireService extends Observable {
             }
             // forward errors
             return {
-                hasErrors: res.hasErrors
+                hasErrors: res.hasErrors,
+                loaded: newNubs.map(n => n.nub.uid)
             };
 
         } catch (err) {
-- 
GitLab