From dca9d88f97628cd36e4afee7c91bd7cdc4499e66 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Tue, 16 Nov 2021 20:29:33 +0200 Subject: [PATCH] make route reuse work better --- apps/red-ui/src/app/app-routing.module.ts | 5 +++++ .../app/modules/admin/admin-routing.module.ts | 4 ++-- .../modules/dossier/dossiers-routing.module.ts | 18 ------------------ .../dossier-overview.module.ts | 3 +++ .../dossiers-listing.module.ts | 5 +++-- 5 files changed, 13 insertions(+), 22 deletions(-) diff --git a/apps/red-ui/src/app/app-routing.module.ts b/apps/red-ui/src/app/app-routing.module.ts index b6ec3c6fd..f8063def5 100644 --- a/apps/red-ui/src/app/app-routing.module.ts +++ b/apps/red-ui/src/app/app-routing.module.ts @@ -33,6 +33,11 @@ const routes = [ path: 'main/dossiers', component: BaseScreenComponent, loadChildren: () => import('./modules/dossier/dossiers.module').then(m => m.DossiersModule), + canActivate: [CompositeRouteGuard], + data: { + routeGuards: [AuthGuard, RedRoleGuard, AppStateGuard], + requiredRoles: ['RED_USER', 'RED_MANAGER'], + }, }, { path: 'main/downloads', diff --git a/apps/red-ui/src/app/modules/admin/admin-routing.module.ts b/apps/red-ui/src/app/modules/admin/admin-routing.module.ts index 127bf919b..276e1b59d 100644 --- a/apps/red-ui/src/app/modules/admin/admin-routing.module.ts +++ b/apps/red-ui/src/app/modules/admin/admin-routing.module.ts @@ -15,14 +15,14 @@ import { UserListingScreenComponent } from './screens/user-listing/user-listing- import { LicenseInformationScreenComponent } from './screens/license-information/license-information-screen.component'; import { DigitalSignatureScreenComponent } from './screens/digital-signature/digital-signature-screen.component'; import { AuditScreenComponent } from './screens/audit/audit-screen.component'; -import { RouterModule } from '@angular/router'; +import { RouterModule, Routes } from '@angular/router'; import { ReportsScreenComponent } from './screens/reports/reports-screen.component'; import { DossierAttributesListingScreenComponent } from './screens/dossier-attributes-listing/dossier-attributes-listing-screen.component'; import { TrashScreenComponent } from './screens/trash/trash-screen.component'; import { GeneralConfigScreenComponent } from './screens/general-config/general-config-screen.component'; import { BaseAdminScreenComponent } from './base-admin-screen/base-admin-screen.component'; -const routes = [ +const routes: Routes = [ { path: '', redirectTo: 'dossier-templates', pathMatch: 'full' }, { path: 'dossier-templates', diff --git a/apps/red-ui/src/app/modules/dossier/dossiers-routing.module.ts b/apps/red-ui/src/app/modules/dossier/dossiers-routing.module.ts index e20b57beb..d92308206 100644 --- a/apps/red-ui/src/app/modules/dossier/dossiers-routing.module.ts +++ b/apps/red-ui/src/app/modules/dossier/dossiers-routing.module.ts @@ -1,9 +1,6 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { CompositeRouteGuard } from '@iqser/common-ui'; -import { AuthGuard } from '../auth/auth.guard'; -import { RedRoleGuard } from '../auth/red-role.guard'; -import { AppStateGuard } from '@state/app-state.guard'; import { SearchScreenComponent } from './screens/search-screen/search-screen.component'; import { FilePreviewScreenComponent } from './screens/file-preview-screen/file-preview-screen.component'; @@ -11,37 +8,22 @@ const routes: Routes = [ { path: 'search', component: SearchScreenComponent, - canActivate: [CompositeRouteGuard], - data: { - routeGuards: [AuthGuard, RedRoleGuard, AppStateGuard], - }, }, { path: ':dossierId', canActivate: [CompositeRouteGuard], - data: { - routeGuards: [AuthGuard, RedRoleGuard, AppStateGuard], - reuse: true, - }, loadChildren: () => import('./screens/dossier-overview/dossier-overview.module').then(m => m.DossierOverviewModule), }, { path: ':dossierId/file/:fileId', component: FilePreviewScreenComponent, - canActivate: [CompositeRouteGuard], data: { - routeGuards: [AuthGuard, RedRoleGuard, AppStateGuard], reuse: true, }, }, { path: '', pathMatch: 'full', - canActivate: [CompositeRouteGuard], - data: { - routeGuards: [AuthGuard, RedRoleGuard, AppStateGuard], - reuse: true, - }, loadChildren: () => import('./screens/dossiers-listing/dossiers-listing.module').then(m => m.DossiersListingModule), }, ]; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/dossier-overview.module.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/dossier-overview.module.ts index 6843a18e5..9684e944e 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/dossier-overview.module.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/dossier-overview.module.ts @@ -22,6 +22,9 @@ const routes = [ path: '', component: DossierOverviewScreenComponent, pathMatch: 'full', + data: { + reuse: true, + }, }, ]; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/dossiers-listing.module.ts b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/dossiers-listing.module.ts index 0ede8b3e4..f04907531 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/dossiers-listing.module.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossiers-listing/dossiers-listing.module.ts @@ -3,7 +3,7 @@ import { CommonModule } from '@angular/common'; import { IqserIconsModule } from '@iqser/common-ui'; import { TranslateModule } from '@ngx-translate/core'; import { DossiersListingScreenComponent } from './screen/dossiers-listing-screen.component'; -import { RouterModule } from '@angular/router'; +import { RouterModule, Routes } from '@angular/router'; import { DossiersListingActionsComponent } from './components/dossiers-listing-actions/dossiers-listing-actions.component'; import { SharedModule } from '@shared/shared.module'; import { DossiersListingDetailsComponent } from './components/dossiers-listing-details/dossiers-listing-details.component'; @@ -13,11 +13,12 @@ import { TableItemComponent } from './components/table-item/table-item.component import { SharedDossiersModule } from '../../shared/shared-dossiers.module'; import { DossierWorkloadColumnComponent } from './components/dossier-workload-column/dossier-workload-column.component'; -const routes = [ +const routes: Routes = [ { path: '', component: DossiersListingScreenComponent, pathMatch: 'full', + data: { reuse: true }, }, ];