mirror of
https://github.com/bitwarden/browser
synced 2025-12-20 10:13:31 +00:00
[EC-8] Add lazy loading to org billing
This commit is contained in:
@@ -0,0 +1,47 @@
|
|||||||
|
import { NgModule } from "@angular/core";
|
||||||
|
import { RouterModule, Routes } from "@angular/router";
|
||||||
|
|
||||||
|
import { Permissions } from "@bitwarden/common/enums/permissions";
|
||||||
|
|
||||||
|
import { PermissionsGuard } from "../../../organizations/guards/permissions.guard";
|
||||||
|
import { NavigationPermissionsService } from "../../../organizations/services/navigation-permissions.service";
|
||||||
|
import { BillingHistoryComponent } from "../../../settings/billing-history.component";
|
||||||
|
import { PaymentMethodComponent } from "../../../settings/payment-method.component";
|
||||||
|
|
||||||
|
import { OrganizationBillingTabComponent } from "./organization-billing-tab.component";
|
||||||
|
import { OrganizationSubscriptionComponent } from "./organization-subscription.component";
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
{
|
||||||
|
path: "",
|
||||||
|
component: OrganizationBillingTabComponent,
|
||||||
|
canActivate: [PermissionsGuard],
|
||||||
|
data: { permissions: NavigationPermissionsService.getPermissions("billing") },
|
||||||
|
children: [
|
||||||
|
{ path: "", pathMatch: "full", redirectTo: "subscription" },
|
||||||
|
{
|
||||||
|
path: "subscription",
|
||||||
|
component: OrganizationSubscriptionComponent,
|
||||||
|
data: { titleId: "subscription" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "payment-method",
|
||||||
|
component: PaymentMethodComponent,
|
||||||
|
canActivate: [PermissionsGuard],
|
||||||
|
data: { titleId: "paymentMethod", permissions: [Permissions.ManageBilling] },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "history",
|
||||||
|
component: BillingHistoryComponent,
|
||||||
|
canActivate: [PermissionsGuard],
|
||||||
|
data: { titleId: "billingHistory", permissions: [Permissions.ManageBilling] },
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
exports: [RouterModule],
|
||||||
|
})
|
||||||
|
export class OrganizationBillingRoutingModule {}
|
||||||
@@ -4,20 +4,16 @@ import { LooseComponentsModule } from "../../loose-components.module";
|
|||||||
import { SharedModule } from "../../shared.module";
|
import { SharedModule } from "../../shared.module";
|
||||||
|
|
||||||
import { BillingSyncApiKeyComponent } from "./billing-sync-api-key.component";
|
import { BillingSyncApiKeyComponent } from "./billing-sync-api-key.component";
|
||||||
|
import { OrganizationBillingRoutingModule } from "./organization-billing-routing.module";
|
||||||
import { OrganizationBillingTabComponent } from "./organization-billing-tab.component";
|
import { OrganizationBillingTabComponent } from "./organization-billing-tab.component";
|
||||||
import { OrganizationSubscriptionComponent } from "./organization-subscription.component";
|
import { OrganizationSubscriptionComponent } from "./organization-subscription.component";
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [SharedModule, LooseComponentsModule],
|
imports: [SharedModule, LooseComponentsModule, OrganizationBillingRoutingModule],
|
||||||
declarations: [
|
declarations: [
|
||||||
BillingSyncApiKeyComponent,
|
BillingSyncApiKeyComponent,
|
||||||
OrganizationBillingTabComponent,
|
OrganizationBillingTabComponent,
|
||||||
OrganizationSubscriptionComponent,
|
OrganizationSubscriptionComponent,
|
||||||
],
|
],
|
||||||
exports: [
|
|
||||||
BillingSyncApiKeyComponent,
|
|
||||||
OrganizationBillingTabComponent,
|
|
||||||
OrganizationSubscriptionComponent,
|
|
||||||
],
|
|
||||||
})
|
})
|
||||||
export class OrganizationBillingModule {}
|
export class OrganizationBillingModule {}
|
||||||
|
|||||||
@@ -2,13 +2,8 @@ import { NgModule } from "@angular/core";
|
|||||||
import { RouterModule, Routes } from "@angular/router";
|
import { RouterModule, Routes } from "@angular/router";
|
||||||
|
|
||||||
import { AuthGuard } from "@bitwarden/angular/guards/auth.guard";
|
import { AuthGuard } from "@bitwarden/angular/guards/auth.guard";
|
||||||
import { Permissions } from "@bitwarden/common/enums/permissions";
|
|
||||||
|
|
||||||
import { OrganizationBillingTabComponent } from "../modules/organizations/billing/organization-billing-tab.component";
|
|
||||||
import { OrganizationSubscriptionComponent } from "../modules/organizations/billing/organization-subscription.component";
|
|
||||||
import { OrganizationVaultModule } from "../modules/vault/modules/organization-vault/organization-vault.module";
|
import { OrganizationVaultModule } from "../modules/vault/modules/organization-vault/organization-vault.module";
|
||||||
import { BillingHistoryComponent } from "../settings/billing-history.component";
|
|
||||||
import { PaymentMethodComponent } from "../settings/payment-method.component";
|
|
||||||
|
|
||||||
import { PermissionsGuard } from "./guards/permissions.guard";
|
import { PermissionsGuard } from "./guards/permissions.guard";
|
||||||
import { OrganizationLayoutComponent } from "./layouts/organization-layout.component";
|
import { OrganizationLayoutComponent } from "./layouts/organization-layout.component";
|
||||||
@@ -75,29 +70,10 @@ const routes: Routes = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "billing",
|
path: "billing",
|
||||||
component: OrganizationBillingTabComponent,
|
loadChildren: () =>
|
||||||
canActivate: [PermissionsGuard],
|
import("../modules/organizations/billing/organization-billing.module").then(
|
||||||
data: { permissions: NavigationPermissionsService.getPermissions("billing") },
|
(m) => m.OrganizationBillingModule
|
||||||
children: [
|
),
|
||||||
{ path: "", pathMatch: "full", redirectTo: "subscription" },
|
|
||||||
{
|
|
||||||
path: "subscription",
|
|
||||||
component: OrganizationSubscriptionComponent,
|
|
||||||
data: { titleId: "subscription" },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "payment-method",
|
|
||||||
component: PaymentMethodComponent,
|
|
||||||
canActivate: [PermissionsGuard],
|
|
||||||
data: { titleId: "paymentMethod", permissions: [Permissions.ManageBilling] },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "history",
|
|
||||||
component: BillingHistoryComponent,
|
|
||||||
canActivate: [PermissionsGuard],
|
|
||||||
data: { titleId: "billingHistory", permissions: [Permissions.ManageBilling] },
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import { NgModule } from "@angular/core";
|
import { NgModule } from "@angular/core";
|
||||||
|
|
||||||
import { LooseComponentsModule } from "./modules/loose-components.module";
|
import { LooseComponentsModule } from "./modules/loose-components.module";
|
||||||
import { OrganizationBillingModule } from "./modules/organizations/billing/organization-billing.module";
|
|
||||||
import { OrganizationCreateModule } from "./modules/organizations/create/organization-create.module";
|
import { OrganizationCreateModule } from "./modules/organizations/create/organization-create.module";
|
||||||
import { OrganizationManageModule } from "./modules/organizations/manage/organization-manage.module";
|
import { OrganizationManageModule } from "./modules/organizations/manage/organization-manage.module";
|
||||||
import { OrganizationUserModule } from "./modules/organizations/users/organization-user.module";
|
import { OrganizationUserModule } from "./modules/organizations/users/organization-user.module";
|
||||||
@@ -22,7 +21,6 @@ import { OrganizationBadgeModule } from "./modules/vault/modules/organization-ba
|
|||||||
OrganizationManageModule,
|
OrganizationManageModule,
|
||||||
OrganizationUserModule,
|
OrganizationUserModule,
|
||||||
OrganizationCreateModule,
|
OrganizationCreateModule,
|
||||||
OrganizationBillingModule,
|
|
||||||
],
|
],
|
||||||
exports: [
|
exports: [
|
||||||
SharedModule,
|
SharedModule,
|
||||||
|
|||||||
Reference in New Issue
Block a user