Browse Source

feat(tenant-management): add admin password and email fields to new tenant form

pull/3193/head
mehmet-erim 6 years ago
parent
commit
5c2f8432e3
  1. 20
      npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.html
  2. 15
      npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts
  3. 5
      npm/ng-packs/packages/tenant-management/src/lib/models/tenant-management.ts
  4. 24
      npm/ng-packs/packages/tenant-management/src/lib/services/tenant-management.service.ts

20
npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.html

@ -140,6 +140,26 @@
<label for="name">{{ 'AbpTenantManagement::TenantName' | abpLocalization }}</label>
<input type="text" id="name" class="form-control" formControlName="name" autofocus />
</div>
<div class="form-group" *ngIf="tenantForm.controls.adminEmailAddress">
<label for="name">{{ 'AbpTenantManagement::DisplayName:AdminEmailAddress' | abpLocalization }}</label>
<input
autocomplete="email"
type="email"
id="admin-email-address"
class="form-control"
formControlName="adminEmailAddress"
/>
</div>
<div class="form-group" *ngIf="tenantForm.controls.adminPassword">
<label for="name">{{ 'AbpTenantManagement::DisplayName:AdminPassword' | abpLocalization }}</label>
<input
autocomplete="new-password"
type="password"
id="admin-password"
class="form-control"
formControlName="adminPassword"
/>
</div>
</div>
</form>
</ng-template>

15
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() {

5
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 {

24
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<null> = {
method: 'GET',
url: '/api/multi-tenancy/tenants',
params
params,
};
return this.rest.request<null, TenantManagement.Response>(request);
@ -22,7 +22,7 @@ export class TenantManagementService {
getTenantById(id: string): Observable<ABP.BasicItem> {
const request: Rest.Request<null> = {
method: 'GET',
url: `/api/multi-tenancy/tenants/${id}`
url: `/api/multi-tenancy/tenants/${id}`,
};
return this.rest.request<null, ABP.BasicItem>(request);
@ -31,7 +31,7 @@ export class TenantManagementService {
deleteTenant(id: string): Observable<null> {
const request: Rest.Request<null> = {
method: 'DELETE',
url: `/api/multi-tenancy/tenants/${id}`
url: `/api/multi-tenancy/tenants/${id}`,
};
return this.rest.request<null, null>(request);
@ -41,7 +41,7 @@ export class TenantManagementService {
const request: Rest.Request<TenantManagement.AddRequest> = {
method: 'POST',
url: '/api/multi-tenancy/tenants',
body
body,
};
return this.rest.request<TenantManagement.AddRequest, ABP.BasicItem>(request);
@ -54,10 +54,10 @@ export class TenantManagementService {
const request: Rest.Request<TenantManagement.UpdateRequest> = {
method: 'PUT',
url,
body
body,
};
return this.rest.request<TenantManagement.AddRequest, ABP.BasicItem>(request);
return this.rest.request<TenantManagement.UpdateRequest, ABP.BasicItem>(request);
}
getDefaultConnectionString(id: string): Observable<string> {
@ -66,18 +66,20 @@ export class TenantManagementService {
const request: Rest.Request<TenantManagement.DefaultConnectionStringRequest> = {
method: 'GET',
responseType: Rest.ResponseType.Text,
url
url,
};
return this.rest.request<TenantManagement.DefaultConnectionStringRequest, string>(request);
}
updateDefaultConnectionString(payload: TenantManagement.DefaultConnectionStringRequest): Observable<any> {
updateDefaultConnectionString(
payload: TenantManagement.DefaultConnectionStringRequest,
): Observable<any> {
const url = `/api/multi-tenancy/tenants/${payload.id}/default-connection-string`;
const request: Rest.Request<TenantManagement.DefaultConnectionStringRequest> = {
method: 'PUT',
url,
params: { defaultConnectionString: payload.defaultConnectionString }
params: { defaultConnectionString: payload.defaultConnectionString },
};
return this.rest.request<TenantManagement.DefaultConnectionStringRequest, any>(request);
}
@ -87,7 +89,7 @@ export class TenantManagementService {
const request: Rest.Request<TenantManagement.DefaultConnectionStringRequest> = {
method: 'DELETE',
url
url,
};
return this.rest.request<TenantManagement.DefaultConnectionStringRequest, any>(request);
}

Loading…
Cancel
Save