From 5c2f8432e3891d3fc4fd1d3b66d31d18da978a71 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 18 Mar 2020 20:59:32 +0300 Subject: [PATCH] feat(tenant-management): add admin password and email fields to new tenant form --- .../components/tenants/tenants.component.html | 20 ++++++++++++++++ .../components/tenants/tenants.component.ts | 15 +++++++++++- .../src/lib/models/tenant-management.ts | 5 +++- .../lib/services/tenant-management.service.ts | 24 ++++++++++--------- 4 files changed, 51 insertions(+), 13 deletions(-) diff --git a/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.html b/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.html index a0fccaf9d3..2b0276ede8 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.html +++ b/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.html @@ -140,6 +140,26 @@ +
+ + +
+
+ + +
diff --git a/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts b/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts index fa400d06f9..788953096f 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts @@ -60,6 +60,10 @@ export class TenantsComponent implements OnInit { sortKey = ''; + get hasSelectedTenant(): boolean { + return Boolean(this.selected.id); + } + get useSharedDatabase(): boolean { return this.defaultConnectionStringForm.get('useSharedDatabase').value; } @@ -115,9 +119,18 @@ export class TenantsComponent implements OnInit { } private createTenantForm() { - this.tenantForm = this.fb.group({ + const tenantForm = this.fb.group({ name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]], + adminEmailAddress: [null, [Validators.required, Validators.maxLength(256), Validators.email]], + adminPassword: [null, [Validators.required]], }); + + if (this.hasSelectedTenant) { + tenantForm.removeControl('adminEmailAddress'); + tenantForm.removeControl('adminPassword'); + } + + this.tenantForm = tenantForm; } private createDefaultConnectionStringForm() { diff --git a/npm/ng-packs/packages/tenant-management/src/lib/models/tenant-management.ts b/npm/ng-packs/packages/tenant-management/src/lib/models/tenant-management.ts index 40a9c06d11..b7659e2a95 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/models/tenant-management.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/models/tenant-management.ts @@ -14,11 +14,14 @@ export namespace TenantManagement { } export interface AddRequest { + adminEmailAddress: string; + adminPassword: string; name: string; } - export interface UpdateRequest extends AddRequest { + export interface UpdateRequest { id: string; + name: string; } export interface DefaultConnectionStringRequest { diff --git a/npm/ng-packs/packages/tenant-management/src/lib/services/tenant-management.service.ts b/npm/ng-packs/packages/tenant-management/src/lib/services/tenant-management.service.ts index bb043377e6..27ee26b7ed 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/services/tenant-management.service.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/services/tenant-management.service.ts @@ -4,7 +4,7 @@ import { RestService, Rest, ABP } from '@abp/ng.core'; import { TenantManagement } from '../models/tenant-management'; @Injectable({ - providedIn: 'root' + providedIn: 'root', }) export class TenantManagementService { constructor(private rest: RestService) {} @@ -13,7 +13,7 @@ export class TenantManagementService { const request: Rest.Request = { method: 'GET', url: '/api/multi-tenancy/tenants', - params + params, }; return this.rest.request(request); @@ -22,7 +22,7 @@ export class TenantManagementService { getTenantById(id: string): Observable { const request: Rest.Request = { method: 'GET', - url: `/api/multi-tenancy/tenants/${id}` + url: `/api/multi-tenancy/tenants/${id}`, }; return this.rest.request(request); @@ -31,7 +31,7 @@ export class TenantManagementService { deleteTenant(id: string): Observable { const request: Rest.Request = { method: 'DELETE', - url: `/api/multi-tenancy/tenants/${id}` + url: `/api/multi-tenancy/tenants/${id}`, }; return this.rest.request(request); @@ -41,7 +41,7 @@ export class TenantManagementService { const request: Rest.Request = { method: 'POST', url: '/api/multi-tenancy/tenants', - body + body, }; return this.rest.request(request); @@ -54,10 +54,10 @@ export class TenantManagementService { const request: Rest.Request = { method: 'PUT', url, - body + body, }; - return this.rest.request(request); + return this.rest.request(request); } getDefaultConnectionString(id: string): Observable { @@ -66,18 +66,20 @@ export class TenantManagementService { const request: Rest.Request = { method: 'GET', responseType: Rest.ResponseType.Text, - url + url, }; return this.rest.request(request); } - updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable { + updateDefaultConnectionString( + payload: TenantManagement.DefaultConnectionStringRequest, + ): Observable { const url = `/api/multi-tenancy/tenants/${payload.id}/default-connection-string`; const request: Rest.Request = { method: 'PUT', url, - params: { defaultConnectionString: payload.defaultConnectionString } + params: { defaultConnectionString: payload.defaultConnectionString }, }; return this.rest.request(request); } @@ -87,7 +89,7 @@ export class TenantManagementService { const request: Rest.Request = { method: 'DELETE', - url + url, }; return this.rest.request(request); }