diff --git a/cerberus/src/app/applications/create-application/create-application.component.ts b/cerberus/src/app/applications/create-application/create-application.component.ts index 8fe1a78..daece41 100644 --- a/cerberus/src/app/applications/create-application/create-application.component.ts +++ b/cerberus/src/app/applications/create-application/create-application.component.ts @@ -33,11 +33,19 @@ export class CreateApplicationComponent implements OnInit { .catch(error => console.error('An error occured while loading service types.')); } + onServiceTypeSelection(event: ReferentialData): void { + this.form.controls.serviceType.setValue(event.value); + console.log(event.value); + } + onSubmit(): void { if (this.form.valid) { const appToAdd: Application = this.form.value as Application; this._applicationService.add(appToAdd) - .then(applicationAdded => console.log('Application added.')) + .then(applicationAdded => { + console.log('Application added.'); + this._modalService.close(); + }) .catch(error => console.error('An error occured while adding the new application.')); } else { console.error('Form is invalid'); @@ -47,9 +55,4 @@ export class CreateApplicationComponent implements OnInit { onCancel(): void { this._modalService.close(); } - - onServiceTypeSelection(event: ReferentialData): void { - this.form.controls.serviceType.setValue(event.value); - console.log(event.value); - } } diff --git a/cerberus/src/app/applications/status/status.component.ts b/cerberus/src/app/applications/status/status.component.ts index 20faa1b..0013fb2 100644 --- a/cerberus/src/app/applications/status/status.component.ts +++ b/cerberus/src/app/applications/status/status.component.ts @@ -18,6 +18,11 @@ export class StatusComponent implements OnInit { ) {} ngOnInit(): void { + this.loadApplications(); + this._modalService.onClose.subscribe(() => this.loadApplications()); + } + + private loadApplications(): void { this._applicationService.getAllStatus() .then(applicationsStatus => this.applicationsStatus = applicationsStatus); } diff --git a/cerberus/src/app/core/services/modal.service.ts b/cerberus/src/app/core/services/modal.service.ts index 22ffe4b..8a77179 100644 --- a/cerberus/src/app/core/services/modal.service.ts +++ b/cerberus/src/app/core/services/modal.service.ts @@ -1,11 +1,12 @@ import { Injectable, Type } from "@angular/core"; -import { BehaviorSubject, Observable } from "rxjs"; +import { BehaviorSubject, Observable, Subject } from "rxjs"; @Injectable({ providedIn: 'root' }) export class ModalService { _modalContent: BehaviorSubject | undefined> = new BehaviorSubject | undefined>(undefined); + _onClose: Subject = new Subject(); open(componentClass: Type): void { this._modalContent.next(componentClass); @@ -13,9 +14,14 @@ export class ModalService { close(): void { this._modalContent.next(undefined); + this._onClose.next(); } get modalContent(): Observable | undefined> { return this._modalContent.asObservable(); } + + get onClose(): Observable { + return this._onClose.asObservable(); + } } \ No newline at end of file