Browse Source

tenant management module refactored

pull/22829/head
erdemcaygor 1 year ago
parent
commit
b2d78f830a
  1. 3
      npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts
  2. 72
      npm/ng-packs/packages/tenant-management/src/lib/tenant-management.config.ts
  3. 39
      npm/ng-packs/packages/tenant-management/src/lib/tenant-management.routes.ts
  4. 33
      npm/ng-packs/packages/tenant-management/src/lib/tenant-management.ts
  5. 2
      npm/ng-packs/packages/tenant-management/src/public-api.ts

3
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',

72
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<TenantsComponent>,
},
title: 'AbpTenantManagement::Tenants',
},
],
},
];

39
npm/ng-packs/packages/tenant-management/src/lib/tenant-management.routes.ts

@ -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<TenantsComponent>,
},
title: 'AbpTenantManagement::Tenants',
},
],
},
];

33
npm/ng-packs/packages/tenant-management/src/lib/tenant-management.ts

@ -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,
},
];
}

2
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';

Loading…
Cancel
Save