From e797e7da38a8eb66215bf949ef0d1fca20667314 Mon Sep 17 00:00:00 2001
From: Albert <Albert.Bruns@mgm-tp.com>
Date: Mon, 3 Mar 2025 13:27:57 +0100
Subject: [PATCH] OZG-7590-7851 fix navigation

---
 alfa-client/apps/admin/src/app/app.component.spec.ts | 9 +++++++++
 alfa-client/apps/admin/src/app/app.component.ts      | 4 ++--
 alfa-client/apps/admin/src/app/app.routes.ts         | 6 ++++++
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/alfa-client/apps/admin/src/app/app.component.spec.ts b/alfa-client/apps/admin/src/app/app.component.spec.ts
index aefc4923d4..be4c62dc1e 100644
--- a/alfa-client/apps/admin/src/app/app.component.spec.ts
+++ b/alfa-client/apps/admin/src/app/app.component.spec.ts
@@ -197,6 +197,7 @@ describe('AppComponent', () => {
     describe('evaluate initial navigation', () => {
       beforeEach(() => {
         component._evaluateNavigationByApiRoot = jest.fn();
+        component._subscribeApiRootForEvaluation = jest.fn();
       });
 
       it('should call router navigate', () => {
@@ -207,6 +208,14 @@ describe('AppComponent', () => {
 
         expect(router.navigate).toHaveBeenCalledWith([window.location.pathname]);
       });
+
+      it('should call subscribe api root evaluation if url starts with /?state', () => {
+        (router as any).url = '/?state=some-state';
+
+        component._evaluateInitialNavigation();
+
+        expect(component._subscribeApiRootForEvaluation).toHaveBeenCalled();
+      });
     });
 
     describe('subscribeApiRootForEvaluation', () => {
diff --git a/alfa-client/apps/admin/src/app/app.component.ts b/alfa-client/apps/admin/src/app/app.component.ts
index 581cb51ffe..c76ad70cfc 100644
--- a/alfa-client/apps/admin/src/app/app.component.ts
+++ b/alfa-client/apps/admin/src/app/app.component.ts
@@ -93,7 +93,7 @@ export class AppComponent implements OnInit {
   }
 
   _evaluateInitialNavigation(): void {
-    if (this.router.url === '/') {
+    if (this.router.url.startsWith('/?state')) {
       this._subscribeApiRootForEvaluation();
     } else {
       this.refreshForGuardEvaluation();
@@ -106,7 +106,7 @@ export class AppComponent implements OnInit {
       .subscribe((apiRootResource: ApiRootResource) => this._evaluateNavigationByApiRoot(apiRootResource));
   }
 
-  private refreshForGuardEvaluation(): void {
+  private async refreshForGuardEvaluation(): Promise<void> {
     this.router.navigate([window.location.pathname]);
   }
 
diff --git a/alfa-client/apps/admin/src/app/app.routes.ts b/alfa-client/apps/admin/src/app/app.routes.ts
index a4cbd29d95..c5974993c2 100644
--- a/alfa-client/apps/admin/src/app/app.routes.ts
+++ b/alfa-client/apps/admin/src/app/app.routes.ts
@@ -44,6 +44,7 @@ export const appRoutes: Route[] = [
     path: ROUTES.POSTFACH,
     component: PostfachPageComponent,
     title: 'Admin | Postfach',
+    runGuardsAndResolvers: 'always',
     canActivate: [configurationGuard],
     data: <GuardData>{ linkRelName: ConfigurationLinkRel.SETTING },
   },
@@ -51,6 +52,7 @@ export const appRoutes: Route[] = [
     path: ROUTES.BENUTZER,
     component: UserListPageComponent,
     title: 'Admin | Benutzer',
+    runGuardsAndResolvers: 'always',
     canActivate: [apiRootGuard],
     data: <GuardData>{ linkRelName: ApiRootLinkRel.USERS },
   },
@@ -58,6 +60,7 @@ export const appRoutes: Route[] = [
     path: ROUTES.BENUTZER_NEU,
     component: UserFormPageComponent,
     title: 'Admin | Benutzer anlegen',
+    runGuardsAndResolvers: 'always',
     canActivate: [apiRootGuard],
     data: <GuardData>{ linkRelName: ApiRootLinkRel.USERS },
   },
@@ -65,6 +68,7 @@ export const appRoutes: Route[] = [
     path: ROUTES.BENUTZER_ID,
     component: UserFormComponent,
     title: 'Admin | Benutzer bearbeiten',
+    runGuardsAndResolvers: 'always',
     canActivate: [apiRootGuard],
     data: <GuardData>{ linkRelName: ApiRootLinkRel.USERS },
   },
@@ -82,6 +86,7 @@ export const appRoutes: Route[] = [
     path: ROUTES.STATISTIK,
     component: StatistikPageComponent,
     title: 'Admin | Statistik',
+    runGuardsAndResolvers: 'always',
     canActivate: [configurationGuard],
     data: <GuardData>{ linkRelName: ConfigurationLinkRel.AGGREGATION_MAPPINGS },
   },
@@ -89,6 +94,7 @@ export const appRoutes: Route[] = [
     path: ROUTES.STATISTIK_NEU,
     component: StatistikFieldsFormPageComponent,
     title: 'Admin | Statistik weitere Felder auswerten',
+    runGuardsAndResolvers: 'always',
     canActivate: [configurationGuard],
     data: <GuardData>{ linkRelName: ConfigurationLinkRel.AGGREGATION_MAPPINGS },
   },
-- 
GitLab