|
|
|
@ -3,31 +3,27 @@ import { ToasterService } from '@abp/ng.theme.shared'; |
|
|
|
import { Component, OnInit } from '@angular/core'; |
|
|
|
import { Store } from '@ngxs/store'; |
|
|
|
import { throwError } from 'rxjs'; |
|
|
|
import { catchError, take } from 'rxjs/operators'; |
|
|
|
import { catchError, take, finalize } from 'rxjs/operators'; |
|
|
|
import snq from 'snq'; |
|
|
|
import { AccountService } from '../../services/account.service'; |
|
|
|
|
|
|
|
@Component({ |
|
|
|
selector: 'abp-tenant-box', |
|
|
|
templateUrl: './tenant-box.component.html' |
|
|
|
templateUrl: './tenant-box.component.html', |
|
|
|
}) |
|
|
|
export class TenantBoxComponent implements OnInit { |
|
|
|
constructor( |
|
|
|
private store: Store, |
|
|
|
private toasterService: ToasterService, |
|
|
|
private accountService: AccountService |
|
|
|
) {} |
|
|
|
|
|
|
|
tenant = {} as ABP.BasicItem; |
|
|
|
|
|
|
|
tenantName: string; |
|
|
|
|
|
|
|
isModalVisible: boolean; |
|
|
|
|
|
|
|
inProgress: boolean; |
|
|
|
|
|
|
|
constructor(private store: Store, private toasterService: ToasterService, private accountService: AccountService) {} |
|
|
|
|
|
|
|
ngOnInit() { |
|
|
|
this.tenant = |
|
|
|
this.store.selectSnapshot(SessionState.getTenant) || |
|
|
|
({} as ABP.BasicItem); |
|
|
|
this.tenant = this.store.selectSnapshot(SessionState.getTenant) || ({} as ABP.BasicItem); |
|
|
|
this.tenantName = this.tenant.name || ''; |
|
|
|
} |
|
|
|
|
|
|
|
@ -36,38 +32,33 @@ export class TenantBoxComponent implements OnInit { |
|
|
|
} |
|
|
|
|
|
|
|
save() { |
|
|
|
if (this.tenant.name) { |
|
|
|
if (this.tenant.name && !this.inProgress) { |
|
|
|
this.inProgress = true; |
|
|
|
this.accountService |
|
|
|
.findTenant(this.tenant.name) |
|
|
|
.pipe( |
|
|
|
finalize(() => (this.inProgress = false)), |
|
|
|
take(1), |
|
|
|
catchError(err => { |
|
|
|
this.toasterService.error( |
|
|
|
snq( |
|
|
|
() => err.error.error_description, |
|
|
|
'AbpUi::DefaultErrorMessage' |
|
|
|
), |
|
|
|
'AbpUi::Error' |
|
|
|
snq(() => err.error.error_description, 'AbpUi::DefaultErrorMessage'), |
|
|
|
'AbpUi::Error', |
|
|
|
); |
|
|
|
return throwError(err); |
|
|
|
}) |
|
|
|
}), |
|
|
|
) |
|
|
|
.subscribe(({ success, tenantId }) => { |
|
|
|
if (success) { |
|
|
|
this.tenant = { |
|
|
|
id: tenantId, |
|
|
|
name: this.tenant.name |
|
|
|
name: this.tenant.name, |
|
|
|
}; |
|
|
|
this.tenantName = this.tenant.name; |
|
|
|
this.isModalVisible = false; |
|
|
|
} else { |
|
|
|
this.toasterService.error( |
|
|
|
'AbpUiMultiTenancy::GivenTenantIsNotAvailable', |
|
|
|
'AbpUi::Error', |
|
|
|
{ |
|
|
|
messageLocalizationParams: [this.tenant.name] |
|
|
|
} |
|
|
|
); |
|
|
|
this.toasterService.error('AbpUiMultiTenancy::GivenTenantIsNotAvailable', 'AbpUi::Error', { |
|
|
|
messageLocalizationParams: [this.tenant.name], |
|
|
|
}); |
|
|
|
this.tenant = {} as ABP.BasicItem; |
|
|
|
} |
|
|
|
this.store.dispatch(new SetTenant(success ? this.tenant : null)); |
|
|
|
|