From 52880ddc3e6fd5f0efedce9011e8dc44391a509d Mon Sep 17 00:00:00 2001 From: piotrpekala7 <31202938+piotrpekala7@users.noreply.github.com> Date: Fri, 28 Feb 2020 14:02:00 +0100 Subject: [PATCH] Updating list when project removed --- src/app/components/projects/projects.component.ts | 2 ++ src/app/guards/project-map-guard.ts | 2 ++ src/app/services/project.service.ts | 8 +++++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/app/components/projects/projects.component.ts b/src/app/components/projects/projects.component.ts index 0ef4d6db..e86b2c58 100644 --- a/src/app/components/projects/projects.component.ts +++ b/src/app/components/projects/projects.component.ts @@ -73,6 +73,8 @@ export class ProjectsComponent implements OnInit { this.settings = this.settingsService.getAll(); + this.projectService.projectListSubject.subscribe(() => this.refresh()); + let gns3vmConfig = localStorage.getItem('gns3vmConfig'); if (this.electronService.isElectronApp && gns3vmConfig!=='configured') { const dialogRef = this.dialog.open(ConfigureGns3VMDialogComponent, { diff --git a/src/app/guards/project-map-guard.ts b/src/app/guards/project-map-guard.ts index df66a29e..5c5186a2 100644 --- a/src/app/guards/project-map-guard.ts +++ b/src/app/guards/project-map-guard.ts @@ -25,7 +25,9 @@ export class ProjectMapGuard implements CanActivate { map(response => { let projectToOpen = response.find(n => n.project_id === project_id); if (projectToOpen) return true; + this.toasterService.error('Project could not be opened'); + this.projectService.projectListUpdated(); return false; }) ) diff --git a/src/app/services/project.service.ts b/src/app/services/project.service.ts index d4c66e68..f4a1057c 100644 --- a/src/app/services/project.service.ts +++ b/src/app/services/project.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { Project } from '../models/project'; import { Node } from '../cartography/models/node'; -import { Observable } from 'rxjs'; +import { Observable, Subject } from 'rxjs'; import { Link } from '../models/link'; import { Server } from '../models/server'; import { HttpServer } from './http-server.service'; @@ -10,8 +10,14 @@ import { SettingsService } from './settings.service'; @Injectable() export class ProjectService { + public projectListSubject = new Subject(); + constructor(private httpServer: HttpServer, private settingsService: SettingsService) {} + projectListUpdated() { + this.projectListSubject.next(true); + } + get(server: Server, project_id: string) { return this.httpServer.get(server, `/projects/${project_id}`); }