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