From b2d78f830ac84c7fa060d817fd0cc7d313d59694 Mon Sep 17 00:00:00 2001 From: erdemcaygor Date: Thu, 8 May 2025 12:16:47 +0300 Subject: [PATCH] tenant management module refactored --- .../dev-app/src/app/app-routing.module.ts | 3 +- .../src/lib/tenant-management.config.ts | 72 +++++++++++++++++++ .../src/lib/tenant-management.routes.ts | 39 ---------- .../src/lib/tenant-management.ts | 33 --------- .../tenant-management/src/public-api.ts | 2 +- 5 files changed, 75 insertions(+), 74 deletions(-) create mode 100644 npm/ng-packs/packages/tenant-management/src/lib/tenant-management.config.ts delete mode 100644 npm/ng-packs/packages/tenant-management/src/lib/tenant-management.routes.ts delete mode 100644 npm/ng-packs/packages/tenant-management/src/lib/tenant-management.ts diff --git a/npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts b/npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts index b4d26020f5..dd692e3641 100644 --- a/npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts +++ b/npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts @@ -18,7 +18,8 @@ const routes: Routes = [ }, { path: 'tenant-management', - loadChildren: () => import('@abp/ng.tenant-management').then(m => m.tenantManagementRoutes), + loadChildren: () => + import('@abp/ng.tenant-management').then(m => m.createTenantManagementRoutingConfiguration()), }, { path: 'setting-management', diff --git a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.config.ts b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.config.ts new file mode 100644 index 0000000000..c959ec0285 --- /dev/null +++ b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.config.ts @@ -0,0 +1,72 @@ +import { Routes } from '@angular/router'; +import { TenantManagementConfigOptions } from './models/config-options'; +import { + TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, + TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, + TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, + TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, + TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, +} from './tokens/extensions.token'; + +import { + authGuard, + permissionGuard, + ReplaceableComponents, + ReplaceableRouteContainerComponent, + RouterOutletComponent, +} from '@abp/ng.core'; +import { TenantsComponent } from './components'; +import { eTenantManagementComponents } from './enums'; +import { tenantManagementExtensionsResolver } from './resolvers'; + +export function provideTenantManagement(options: TenantManagementConfigOptions = {}) { + return [ + { + provide: TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, + useValue: options.entityActionContributors, + }, + { + provide: TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, + useValue: options.toolbarActionContributors, + }, + { + provide: TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, + useValue: options.entityPropContributors, + }, + { + provide: TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, + useValue: options.createFormPropContributors, + }, + { + provide: TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, + useValue: options.editFormPropContributors, + }, + ]; +} + +export const createTenantManagementRoutingConfiguration = ( + options: TenantManagementConfigOptions = {}, +): Routes => [ + { + path: '', + component: RouterOutletComponent, + canActivate: [authGuard, permissionGuard], + resolve: [tenantManagementExtensionsResolver], + providers: [...provideTenantManagement(options)], + children: [ + { path: '', redirectTo: 'tenants', pathMatch: 'full' }, + { + path: 'tenants', + component: ReplaceableRouteContainerComponent, + data: { + requiredPolicy: 'AbpTenantManagement.Tenants', + replaceableComponent: { + key: eTenantManagementComponents.Tenants, + defaultComponent: TenantsComponent, + } as ReplaceableComponents.RouteData, + }, + title: 'AbpTenantManagement::Tenants', + }, + ], + }, +]; diff --git a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.routes.ts b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.routes.ts deleted file mode 100644 index 906b8b31c2..0000000000 --- a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.routes.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Routes } from '@angular/router'; - -import { - authGuard, - permissionGuard, - ReplaceableComponents, - ReplaceableRouteContainerComponent, - RouterOutletComponent, -} from '@abp/ng.core'; - -import { TenantsComponent } from './components/tenants/tenants.component'; -import { eTenantManagementComponents } from './enums/components'; -import { tenantManagementExtensionsResolver } from './resolvers'; -import { provideTenantManagement } from './tenant-management'; - -export const tenantManagementRoutes: Routes = [ - { - path: '', - component: RouterOutletComponent, - canActivate: [authGuard, permissionGuard], - resolve: [tenantManagementExtensionsResolver], - providers: [...provideTenantManagement()], - children: [ - { path: '', redirectTo: 'tenants', pathMatch: 'full' }, - { - path: 'tenants', - component: ReplaceableRouteContainerComponent, - data: { - requiredPolicy: 'AbpTenantManagement.Tenants', - replaceableComponent: { - key: eTenantManagementComponents.Tenants, - defaultComponent: TenantsComponent, - } as ReplaceableComponents.RouteData, - }, - title: 'AbpTenantManagement::Tenants', - }, - ], - }, -]; diff --git a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.ts b/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.ts deleted file mode 100644 index 7238357869..0000000000 --- a/npm/ng-packs/packages/tenant-management/src/lib/tenant-management.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { TenantManagementConfigOptions } from './models/config-options'; -import { - TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, - TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, - TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, - TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, - TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, -} from './tokens/extensions.token'; - -export function provideTenantManagement(options: TenantManagementConfigOptions = {}) { - return [ - { - provide: TENANT_MANAGEMENT_ENTITY_ACTION_CONTRIBUTORS, - useValue: options.entityActionContributors, - }, - { - provide: TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, - useValue: options.toolbarActionContributors, - }, - { - provide: TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, - useValue: options.entityPropContributors, - }, - { - provide: TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, - useValue: options.createFormPropContributors, - }, - { - provide: TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, - useValue: options.editFormPropContributors, - }, - ]; -} diff --git a/npm/ng-packs/packages/tenant-management/src/public-api.ts b/npm/ng-packs/packages/tenant-management/src/public-api.ts index 0ab49e4f64..4d53dca426 100644 --- a/npm/ng-packs/packages/tenant-management/src/public-api.ts +++ b/npm/ng-packs/packages/tenant-management/src/public-api.ts @@ -5,4 +5,4 @@ export * from './lib/models'; export * from './lib/tenant-management.module'; export * from './lib/tokens'; export * from './lib/resolvers'; -export * from './lib/tenant-management.routes'; +export * from './lib/tenant-management.config';