Browse Source

Merge pull request #1673 from abpframework/fix/connection-string-validation

fix(tenant): add validation to connection string #resolves 1641
pull/1691/head
Mehmet Erim 7 years ago
committed by GitHub
parent
commit
97446993e0
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.html
  2. 16
      npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts
  3. 2
      npm/ng-packs/packages/tenant-management/src/lib/services/tenant-management.service.ts
  4. 3
      npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts

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

@ -127,22 +127,22 @@
<ng-template #connectionStringModalTemplate> <ng-template #connectionStringModalTemplate>
<form [formGroup]="defaultConnectionStringForm" (ngSubmit)="save()"> <form [formGroup]="defaultConnectionStringForm" (ngSubmit)="save()">
<div class="mt-2"> <label class="mt-2">
<div class="form-group"> <div class="form-group">
<div class="form-check"> <div class="custom-checkbox custom-control mb-2">
<input <input
id="useSharedDatabase" id="useSharedDatabase"
type="checkbox" type="checkbox"
class="form-check-input" class="custom-control-input"
formControlName="useSharedDatabase" formControlName="useSharedDatabase"
autofocus autofocus
/> />
<label for="useSharedDatabase" class="font-check-label">{{ <label for="useSharedDatabase" class="custom-control-label">{{
'AbpTenantManagement::DisplayName:UseSharedDatabase' | abpLocalization 'AbpTenantManagement::DisplayName:UseSharedDatabase' | abpLocalization
}}</label> }}</label>
</div> </div>
</div> </div>
<div class="form-group" *ngIf="!useSharedDatabase"> <label class="form-group" *ngIf="!useSharedDatabase">
<label for="defaultConnectionString">{{ <label for="defaultConnectionString">{{
'AbpTenantManagement::DisplayName:DefaultConnectionString' | abpLocalization 'AbpTenantManagement::DisplayName:DefaultConnectionString' | abpLocalization
}}</label> }}</label>
@ -152,8 +152,8 @@
class="form-control" class="form-control"
formControlName="defaultConnectionString" formControlName="defaultConnectionString"
/> />
</div> </label>
</div> </label>
</form> </form>
</ng-template> </ng-template>

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

@ -93,7 +93,7 @@ export class TenantsComponent {
private createDefaultConnectionStringForm() { private createDefaultConnectionStringForm() {
this.defaultConnectionStringForm = this.fb.group({ this.defaultConnectionStringForm = this.fb.group({
useSharedDatabase: this._useSharedDatabase, useSharedDatabase: this._useSharedDatabase,
defaultConnectionString: this.defaultConnectionString || '', defaultConnectionString: [this.defaultConnectionString || ''],
}); });
} }
@ -151,20 +151,24 @@ export class TenantsComponent {
saveConnectionString() { saveConnectionString() {
this.modalBusy = true; this.modalBusy = true;
if (this.useSharedDatabase) { if (this.useSharedDatabase || (!this.useSharedDatabase && !this.connectionString)) {
this.tenantService this.tenantService
.deleteDefaultConnectionString(this.selected.id) .deleteDefaultConnectionString(this.selected.id)
.pipe(take(1)) .pipe(
take(1),
finalize(() => (this.modalBusy = false)),
)
.subscribe(() => { .subscribe(() => {
this.modalBusy = false;
this.isModalVisible = false; this.isModalVisible = false;
}); });
} else { } else {
this.tenantService this.tenantService
.updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString }) .updateDefaultConnectionString({ id: this.selected.id, defaultConnectionString: this.connectionString })
.pipe(take(1)) .pipe(
take(1),
finalize(() => (this.modalBusy = false)),
)
.subscribe(() => { .subscribe(() => {
this.modalBusy = false;
this.isModalVisible = false; this.isModalVisible = false;
}); });
} }

2
npm/ng-packs/packages/tenant-management/src/lib/services/tenant-management.service.ts

@ -83,7 +83,7 @@ export class TenantManagementService {
} }
deleteDefaultConnectionString(id: string): Observable<string> { deleteDefaultConnectionString(id: string): Observable<string> {
const url = `/api/multi-tenancy/tenant/${id}/default-connection-string`; const url = `/api/multi-tenancy/tenants/${id}/default-connection-string`;
const request: Rest.Request<TenantManagement.DefaultConnectionStringRequest> = { const request: Rest.Request<TenantManagement.DefaultConnectionStringRequest> = {
method: 'DELETE', method: 'DELETE',

3
npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts

@ -1,6 +1,5 @@
import { CoreModule, LazyLoadService } from '@abp/ng.core'; import { CoreModule, LazyLoadService } from '@abp/ng.core';
import { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core'; import { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';
import { NgbModalModule } from '@ng-bootstrap/ng-bootstrap';
import { NgxValidateCoreModule } from '@ngx-validate/core'; import { NgxValidateCoreModule } from '@ngx-validate/core';
import { MessageService } from 'primeng/components/common/messageservice'; import { MessageService } from 'primeng/components/common/messageservice';
import { ToastModule } from 'primeng/toast'; import { ToastModule } from 'primeng/toast';
@ -40,7 +39,6 @@ export function appendScript(injector: Injector) {
imports: [ imports: [
CoreModule, CoreModule,
ToastModule, ToastModule,
NgbModalModule,
NgxValidateCoreModule.forRoot({ NgxValidateCoreModule.forRoot({
targetSelector: '.form-group', targetSelector: '.form-group',
blueprints: { blueprints: {
@ -67,7 +65,6 @@ export function appendScript(injector: Injector) {
ProfileComponent, ProfileComponent,
], ],
exports: [ exports: [
NgbModalModule,
ButtonComponent, ButtonComponent,
ConfirmationComponent, ConfirmationComponent,
ToastComponent, ToastComponent,

Loading…
Cancel
Save