Browse Source

tenant management module standalone migration

migrating-abp-packages/tenant-management
erdemcaygor 1 year ago
parent
commit
54f24250bd
  1. 3
      npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts
  2. 28
      npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts
  3. 25
      npm/ng-packs/packages/tenant-management/src/lib/tenant-management.module.ts
  4. 41
      npm/ng-packs/packages/tenant-management/src/lib/tenant-management.routes.ts
  5. 35
      npm/ng-packs/packages/tenant-management/src/lib/tenant-management.ts
  6. 1
      npm/ng-packs/packages/tenant-management/src/public-api.ts

3
npm/ng-packs/apps/dev-app/src/app/app-routing.module.ts

@ -17,8 +17,7 @@ const routes: Routes = [
}, },
{ {
path: 'tenant-management', path: 'tenant-management',
loadChildren: () => loadChildren: () => import('@abp/ng.tenant-management').then(m => m.tenantManagementRoutes),
import('@abp/ng.tenant-management').then(m => m.TenantManagementModule.forLazy()),
}, },
{ {
path: 'setting-management', path: 'setting-management',

28
npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts

@ -1,8 +1,19 @@
import { ListService, PagedResultDto } from '@abp/ng.core'; import { CoreModule, ListService, PagedResultDto } from '@abp/ng.core';
import { eFeatureManagementComponents } from '@abp/ng.feature-management'; import {
eFeatureManagementComponents,
FeatureManagementComponent,
FeatureManagementModule,
provideFeatureManagementConfig,
} from '@abp/ng.feature-management';
import { GetTenantsInput, TenantDto, TenantService } from '@abp/ng.tenant-management/proxy'; import { GetTenantsInput, TenantDto, TenantService } from '@abp/ng.tenant-management/proxy';
import { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared';
import { import {
Confirmation,
ConfirmationService,
ThemeSharedModule,
ToasterService,
} from '@abp/ng.theme.shared';
import {
ExtensibleModule,
EXTENSIONS_IDENTIFIER, EXTENSIONS_IDENTIFIER,
FormPropData, FormPropData,
generateFormFromProps, generateFormFromProps,
@ -11,9 +22,10 @@ import { Component, inject, Injector, OnInit } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
import { finalize } from 'rxjs/operators'; import { finalize } from 'rxjs/operators';
import { eTenantManagementComponents } from '../../enums/components'; import { eTenantManagementComponents } from '../../enums/components';
import { CommonModule } from '@angular/common';
import { PageModule } from '@abp/ng.components/page';
@Component({ @Component({
standalone: false,
selector: 'abp-tenants', selector: 'abp-tenants',
templateUrl: './tenants.component.html', templateUrl: './tenants.component.html',
providers: [ providers: [
@ -23,6 +35,14 @@ import { eTenantManagementComponents } from '../../enums/components';
useValue: eTenantManagementComponents.Tenants, useValue: eTenantManagementComponents.Tenants,
}, },
], ],
imports: [
CommonModule,
CoreModule,
ThemeSharedModule,
PageModule,
ExtensibleModule,
FeatureManagementComponent,
],
}) })
export class TenantsComponent implements OnInit { export class TenantsComponent implements OnInit {
protected readonly list = inject(ListService<GetTenantsInput>); protected readonly list = inject(ListService<GetTenantsInput>);

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

@ -1,13 +1,7 @@
import { CoreModule, LazyModuleFactory } from '@abp/ng.core'; import { LazyModuleFactory } from '@abp/ng.core';
import { ThemeSharedModule } from '@abp/ng.theme.shared';
import { ExtensibleModule } from '@abp/ng.components/extensible';
import { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core'; import { ModuleWithProviders, NgModule, NgModuleFactory } from '@angular/core';
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
import { NgxValidateCoreModule } from '@ngx-validate/core';
import { TenantsComponent } from './components/tenants/tenants.component';
import { TenantManagementExtensionsGuard } from './guards/extensions.guard'; import { TenantManagementExtensionsGuard } from './guards/extensions.guard';
import { TenantManagementConfigOptions } from './models/config-options'; import { TenantManagementConfigOptions } from './models/config-options';
import { TenantManagementRoutingModule } from './tenant-management-routing.module';
import { import {
TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS, TENANT_MANAGEMENT_CREATE_FORM_PROP_CONTRIBUTORS,
TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS, TENANT_MANAGEMENT_EDIT_FORM_PROP_CONTRIBUTORS,
@ -15,22 +9,11 @@ import {
TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS, TENANT_MANAGEMENT_ENTITY_PROP_CONTRIBUTORS,
TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS, TENANT_MANAGEMENT_TOOLBAR_ACTION_CONTRIBUTORS,
} from './tokens/extensions.token'; } from './tokens/extensions.token';
import { PageModule } from '@abp/ng.components/page';
import { FeatureManagementComponent } from '@abp/ng.feature-management';
@NgModule({ @NgModule({
declarations: [TenantsComponent], declarations: [],
exports: [TenantsComponent], exports: [],
imports: [ imports: [],
TenantManagementRoutingModule,
NgxValidateCoreModule,
CoreModule,
ThemeSharedModule,
NgbDropdownModule,
ExtensibleModule,
PageModule,
FeatureManagementComponent,
],
}) })
export class TenantManagementModule { export class TenantManagementModule {
static forChild( static forChild(

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

@ -0,0 +1,41 @@
import { Routes } from '@angular/router';
import {
authGuard,
permissionGuard,
ReplaceableComponents,
ReplaceableRouteContainerComponent,
ReplaceableRouteContainerStandaloneComponent,
RouterOutletComponent,
RouterOutletStandaloneComponent,
} 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: RouterOutletStandaloneComponent,
canActivate: [authGuard, permissionGuard],
resolve: [tenantManagementExtensionsResolver],
providers: [...provideTenantManagement()],
children: [
{ path: '', redirectTo: 'tenants', pathMatch: 'full' },
{
path: 'tenants',
component: ReplaceableRouteContainerStandaloneComponent,
data: {
requiredPolicy: 'AbpTenantManagement.Tenants',
replaceableComponent: {
key: eTenantManagementComponents.Tenants,
defaultComponent: TenantsComponent,
} as ReplaceableComponents.RouteData<TenantsComponent>,
},
title: 'AbpTenantManagement::Tenants',
},
],
},
];

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

@ -0,0 +1,35 @@
import { TenantManagementExtensionsGuard } from './guards/extensions.guard';
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,
},
TenantManagementExtensionsGuard,
];
}

1
npm/ng-packs/packages/tenant-management/src/public-api.ts

@ -5,3 +5,4 @@ export * from './lib/models';
export * from './lib/tenant-management.module'; export * from './lib/tenant-management.module';
export * from './lib/tokens'; export * from './lib/tokens';
export * from './lib/resolvers'; export * from './lib/resolvers';
export * from './lib/tenant-management.routes';

Loading…
Cancel
Save