From e75bf30aada713697f34feb0c6a49ca25bc3e709 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 30 Oct 2019 13:32:36 +0300 Subject: [PATCH] fix(tenant-management): add modalBusy controls resolves #2042 --- .../src/lib/components/tenants/tenants.component.ts | 6 ++++-- .../src/lib/states/tenant-management.state.ts | 7 +++---- 2 files changed, 7 insertions(+), 6 deletions(-) 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 a87a82717f..2a664fc58c 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 @@ -156,6 +156,8 @@ export class TenantsComponent implements OnInit { } saveConnectionString() { + if (this.modalBusy) return; + this.modalBusy = true; if (this.useSharedDatabase || (!this.useSharedDatabase && !this.connectionString)) { this.tenantService @@ -181,13 +183,13 @@ export class TenantsComponent implements OnInit { } saveTenant() { - if (!this.tenantForm.valid) return; + if (!this.tenantForm.valid || this.modalBusy) return; this.modalBusy = true; this.store .dispatch( this.selected.id - ? new UpdateTenant({ ...this.tenantForm.value, id: this.selected.id }) + ? new UpdateTenant({ ...this.selected, ...this.tenantForm.value, id: this.selected.id }) : new CreateTenant(this.tenantForm.value), ) .pipe(finalize(() => (this.modalBusy = false))) diff --git a/npm/ng-packs/packages/tenant-management/src/lib/states/tenant-management.state.ts b/npm/ng-packs/packages/tenant-management/src/lib/states/tenant-management.state.ts index 7b7f693e71..7a82ff6079 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/states/tenant-management.state.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/states/tenant-management.state.ts @@ -62,9 +62,8 @@ export class TenantManagementState { @Action(UpdateTenant) update({ dispatch, getState }: StateContext, { payload }: UpdateTenant) { - return dispatch(new GetTenantById(payload.id)).pipe( - switchMap(() => this.tenantManagementService.updateTenant({ ...getState().selectedItem, ...payload })), - switchMap(() => dispatch(new GetTenants())), - ); + return this.tenantManagementService + .updateTenant({ ...getState().selectedItem, ...payload }) + .pipe(switchMap(() => dispatch(new GetTenants()))); } }