From 8a52dc34561cdf267dde795be7336671154bc259 Mon Sep 17 00:00:00 2001 From: Thomas Rittson Date: Thu, 2 Jun 2022 14:44:47 +1000 Subject: [PATCH] Add ManageRoutingModule, lazy loading --- .../manage/manage-routing.module.ts | 89 +++++++++++++++++++ src/app/organizations/manage/manage.module.ts | 4 +- .../organizations-routing.module.ts | 76 +--------------- src/app/organizations/organizations.module.ts | 12 +-- 4 files changed, 94 insertions(+), 87 deletions(-) create mode 100644 src/app/organizations/manage/manage-routing.module.ts diff --git a/src/app/organizations/manage/manage-routing.module.ts b/src/app/organizations/manage/manage-routing.module.ts new file mode 100644 index 00000000..00e80cb6 --- /dev/null +++ b/src/app/organizations/manage/manage-routing.module.ts @@ -0,0 +1,89 @@ +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; + +import { Permissions } from "jslib-common/enums/permissions"; + +import { PermissionsGuard } from "../guards/permissions.guard"; +import { PoliciesComponent } from "../policies/policies.component"; +import { NavigationPermissionsService } from "../services/navigation-permissions.service"; + +import { CollectionsComponent } from "./collections.component"; +import { EventsComponent } from "./events.component"; +import { GroupsComponent } from "./groups.component"; +import { ManageComponent } from "./manage.component"; +import { PeopleComponent } from "./people.component"; + +const routes: Routes = [ + { + path: "", + component: ManageComponent, + canActivate: [PermissionsGuard], + data: { + permissions: NavigationPermissionsService.getPermissions("manage"), + }, + children: [ + { + path: "", + pathMatch: "full", + redirectTo: "people", + }, + { + path: "collections", + component: CollectionsComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "collections", + permissions: [ + Permissions.CreateNewCollections, + Permissions.EditAnyCollection, + Permissions.DeleteAnyCollection, + Permissions.EditAssignedCollections, + Permissions.DeleteAssignedCollections, + ], + }, + }, + { + path: "events", + component: EventsComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "eventLogs", + permissions: [Permissions.AccessEventLogs], + }, + }, + { + path: "groups", + component: GroupsComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "groups", + permissions: [Permissions.ManageGroups], + }, + }, + { + path: "people", + component: PeopleComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "people", + permissions: [Permissions.ManageUsers, Permissions.ManageUsersPassword], + }, + }, + { + path: "policies", + component: PoliciesComponent, + canActivate: [PermissionsGuard], + data: { + titleId: "policies", + permissions: [Permissions.ManagePolicies], + }, + }, + ], + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class ManageRoutingModule {} diff --git a/src/app/organizations/manage/manage.module.ts b/src/app/organizations/manage/manage.module.ts index c1c24051..426d4abc 100644 --- a/src/app/organizations/manage/manage.module.ts +++ b/src/app/organizations/manage/manage.module.ts @@ -2,6 +2,7 @@ import { CommonModule } from "@angular/common"; import { NgModule } from "@angular/core"; import { SharedModule } from "../../modules/shared.module"; +import { PoliciesModule } from "../policies/policies.module"; import { BulkConfirmComponent } from "./bulk/bulk-confirm.component"; import { BulkRemoveComponent } from "./bulk/bulk-remove.component"; @@ -12,6 +13,7 @@ import { EntityEventsComponent } from "./entity-events.component"; import { EventsComponent } from "./events.component"; import { GroupAddEditComponent } from "./group-add-edit.component"; import { GroupsComponent } from "./groups.component"; +import { ManageRoutingModule } from "./manage-routing.module"; import { ManageComponent } from "./manage.component"; import { PeopleComponent } from "./people.component"; import { PolicyEditComponent } from "./policy-edit.component"; @@ -21,7 +23,7 @@ import { UserConfirmComponent } from "./user-confirm.component"; import { UserGroupsComponent } from "./user-groups.component"; @NgModule({ - imports: [CommonModule, SharedModule], + imports: [CommonModule, SharedModule, PoliciesModule, ManageRoutingModule], declarations: [ BulkConfirmComponent, BulkRemoveComponent, diff --git a/src/app/organizations/organizations-routing.module.ts b/src/app/organizations/organizations-routing.module.ts index a991f47c..548545d4 100644 --- a/src/app/organizations/organizations-routing.module.ts +++ b/src/app/organizations/organizations-routing.module.ts @@ -2,22 +2,10 @@ import { NgModule } from "@angular/core"; import { RouterModule, Routes } from "@angular/router"; import { AuthGuard } from "jslib-angular/guards/auth.guard"; -import { Permissions } from "jslib-common/enums/permissions"; import { PermissionsGuard } from "./guards/permissions.guard"; import { OrganizationLayoutComponent } from "./layouts/organization-layout.component"; -import { CollectionsComponent } from "./manage/collections.component"; -import { EventsComponent } from "./manage/events.component"; -import { GroupsComponent } from "./manage/groups.component"; -import { ManageComponent } from "./manage/manage.component"; -import { PeopleComponent } from "./manage/people.component"; -import { PoliciesComponent } from "./policies/policies.component"; import { NavigationPermissionsService } from "./services/navigation-permissions.service"; -import { AccountComponent } from "./settings/account.component"; -import { BillingComponent } from "./settings/billing.component"; -import { SettingsComponent } from "./settings/settings.component"; -import { SubscriptionComponent } from "./settings/subscription.component"; -import { TwoFactorSetupComponent } from "./settings/two-factor-setup.component"; const routes: Routes = [ { @@ -41,69 +29,7 @@ const routes: Routes = [ }, { path: "manage", - component: ManageComponent, - canActivate: [PermissionsGuard], - data: { - permissions: NavigationPermissionsService.getPermissions("manage"), - }, - children: [ - { - path: "", - pathMatch: "full", - redirectTo: "people", - }, - { - path: "collections", - component: CollectionsComponent, - canActivate: [PermissionsGuard], - data: { - titleId: "collections", - permissions: [ - Permissions.CreateNewCollections, - Permissions.EditAnyCollection, - Permissions.DeleteAnyCollection, - Permissions.EditAssignedCollections, - Permissions.DeleteAssignedCollections, - ], - }, - }, - { - path: "events", - component: EventsComponent, - canActivate: [PermissionsGuard], - data: { - titleId: "eventLogs", - permissions: [Permissions.AccessEventLogs], - }, - }, - { - path: "groups", - component: GroupsComponent, - canActivate: [PermissionsGuard], - data: { - titleId: "groups", - permissions: [Permissions.ManageGroups], - }, - }, - { - path: "people", - component: PeopleComponent, - canActivate: [PermissionsGuard], - data: { - titleId: "people", - permissions: [Permissions.ManageUsers, Permissions.ManageUsersPassword], - }, - }, - { - path: "policies", - component: PoliciesComponent, - canActivate: [PermissionsGuard], - data: { - titleId: "policies", - permissions: [Permissions.ManagePolicies], - }, - }, - ], + loadChildren: async () => (await import("./manage/manage.module")).ManageModule, }, { path: "settings", diff --git a/src/app/organizations/organizations.module.ts b/src/app/organizations/organizations.module.ts index 9a4513b0..35f16fbc 100644 --- a/src/app/organizations/organizations.module.ts +++ b/src/app/organizations/organizations.module.ts @@ -6,23 +6,13 @@ import { SharedModule } from "../modules/shared.module"; import { OrganizationLayoutComponent } from "./layouts/organization-layout.component"; import { OrganizationSwitcherComponent } from "./layouts/organization-switcher.component"; -import { ManageModule } from "./manage/manage.module"; import { OrganizationsRoutingModule } from "./organizations-routing.module"; -import { PoliciesModule } from "./policies/policies.module"; import { SettingsModule } from "./settings/settings.module"; import { AcceptFamilySponsorshipComponent } from "./sponsorships/accept-family-sponsorship.component"; import { FamiliesForEnterpriseSetupComponent } from "./sponsorships/families-for-enterprise-setup.component"; @NgModule({ - imports: [ - CommonModule, - OrganizationsRoutingModule, - SharedModule, - LayoutsModule, - PoliciesModule, - SettingsModule, - ManageModule, - ], + imports: [CommonModule, OrganizationsRoutingModule, SharedModule, LayoutsModule, SettingsModule], declarations: [ AcceptFamilySponsorshipComponent, FamiliesForEnterpriseSetupComponent,