Merge pull request #479 from GNS3/User-has-ability-to-delete-project-in-the-opened-project

User has ability to delete project in the opened project
This commit is contained in:
piotrpekala7 2019-08-20 11:05:05 +02:00 committed by GitHub
commit 3cc062f457
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 8 deletions

View File

@ -46,6 +46,10 @@
<mat-icon>developer_board</mat-icon> <mat-icon>developer_board</mat-icon>
<span>Servers</span> <span>Servers</span>
</button> </button>
<button mat-menu-item (click)="deleteProject()">
<mat-icon>delete</mat-icon>
<span>Delete project</span>
</button>
</mat-menu> </mat-menu>
<mat-toolbar-row> <mat-toolbar-row>

View File

@ -2,7 +2,6 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ProjectMapComponent } from './project-map.component'; import { ProjectMapComponent } from './project-map.component';
import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule } from '@angular/material'; import { MatIconModule, MatToolbarModule, MatMenuModule, MatCheckboxModule } from '@angular/material';
import { Router } from '@angular/router';
import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { ServerService } from '../../services/server.service'; import { ServerService } from '../../services/server.service';
import { ProjectService } from '../../services/project.service'; import { ProjectService } from '../../services/project.service';
@ -21,7 +20,7 @@ import { DrawingsDataSource } from '../../cartography/datasources/drawings-datas
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { ANGULAR_MAP_DECLARATIONS } from '../../cartography/angular-map.imports'; import { ANGULAR_MAP_DECLARATIONS } from '../../cartography/angular-map.imports';
import { NO_ERRORS_SCHEMA } from '@angular/core'; import { NO_ERRORS_SCHEMA } from '@angular/core';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { MockedSettingsService } from '../../services/settings.service.spec'; import { MockedSettingsService } from '../../services/settings.service.spec';
import { MockedServerService } from '../../services/server.service.spec'; import { MockedServerService } from '../../services/server.service.spec';
import { MockedProjectService } from '../../services/project.service.spec'; import { MockedProjectService } from '../../services/project.service.spec';
@ -53,8 +52,8 @@ import { MapSettingService } from '../../services/mapsettings.service';
import { ProjectMapMenuComponent } from './project-map-menu/project-map-menu.component'; import { ProjectMapMenuComponent } from './project-map-menu/project-map-menu.component';
import { MockedToasterService } from '../../services/toaster.service.spec'; import { MockedToasterService } from '../../services/toaster.service.spec';
import { ToasterService } from '../../services/toaster.service'; import { ToasterService } from '../../services/toaster.service';
import { MockedActivatedRoute } from '../snapshots/list-of-snapshots/list-of-snaphshots.component.spec';
import { MapNodesDataSource, MapLinksDataSource, MapDrawingsDataSource, MapSymbolsDataSource } from '../../cartography/datasources/map-datasource'; import { MapNodesDataSource, MapLinksDataSource, MapDrawingsDataSource, MapSymbolsDataSource } from '../../cartography/datasources/map-datasource';
import { MockedRouter } from '../../common/progress/progress.component.spec';
export class MockedProgressService { export class MockedProgressService {
public activate() {} public activate() {}
@ -208,8 +207,8 @@ describe('ProjectMapComponent', () => {
let nodesDataSource = new MockedNodesDataSource(); let nodesDataSource = new MockedNodesDataSource();
let linksDataSource = new MockedLinksDataSource(); let linksDataSource = new MockedLinksDataSource();
let mockedToasterService = new MockedToasterService(); let mockedToasterService = new MockedToasterService();
let router = new MockedRouter();
let nodeCreatedLabelStylesFixer; let nodeCreatedLabelStylesFixer;
let mockedRouter = new MockedActivatedRoute;
beforeEach(async(() => { beforeEach(async(() => {
nodeCreatedLabelStylesFixer = { nodeCreatedLabelStylesFixer = {
@ -254,11 +253,11 @@ describe('ProjectMapComponent', () => {
{ provide: MapScaleService }, { provide: MapScaleService },
{ provide: NodeCreatedLabelStylesFixer, useValue: nodeCreatedLabelStylesFixer}, { provide: NodeCreatedLabelStylesFixer, useValue: nodeCreatedLabelStylesFixer},
{ provide: ToasterService, useValue: mockedToasterService }, { provide: ToasterService, useValue: mockedToasterService },
{ provide: Router, useValue: mockedRouter },
{ provide: MapNodesDataSource, useClass: MapNodesDataSource }, { provide: MapNodesDataSource, useClass: MapNodesDataSource },
{ provide: MapLinksDataSource, useClass: LinksDataSource }, { provide: MapLinksDataSource, useClass: LinksDataSource },
{ provide: MapDrawingsDataSource, useClass: MapDrawingsDataSource }, { provide: MapDrawingsDataSource, useClass: MapDrawingsDataSource },
{ provide: MapSymbolsDataSource, useClass: MapSymbolsDataSource }, { provide: MapSymbolsDataSource, useClass: MapSymbolsDataSource }
{ provide: Router, useValue: router}
], ],
declarations: [ProjectMapComponent, ProjectMapMenuComponent, D3MapComponent, ...ANGULAR_MAP_DECLARATIONS], declarations: [ProjectMapComponent, ProjectMapMenuComponent, D3MapComponent, ...ANGULAR_MAP_DECLARATIONS],
schemas: [NO_ERRORS_SCHEMA] schemas: [NO_ERRORS_SCHEMA]

View File

@ -117,11 +117,11 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
private mapScaleService: MapScaleService, private mapScaleService: MapScaleService,
private nodeCreatedLabelStylesFixer: NodeCreatedLabelStylesFixer, private nodeCreatedLabelStylesFixer: NodeCreatedLabelStylesFixer,
private toasterService: ToasterService, private toasterService: ToasterService,
private router: Router,
private mapNodesDataSource: MapNodesDataSource, private mapNodesDataSource: MapNodesDataSource,
private mapLinksDataSource: MapLinksDataSource, private mapLinksDataSource: MapLinksDataSource,
private mapDrawingsDataSource: MapDrawingsDataSource, private mapDrawingsDataSource: MapDrawingsDataSource,
private mapSymbolsDataSource: MapSymbolsDataSource, private mapSymbolsDataSource: MapSymbolsDataSource
private router: Router
) {} ) {}
ngOnInit() { ngOnInit() {
@ -440,6 +440,12 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
imageToUpload.src = window.URL.createObjectURL(file); imageToUpload.src = window.URL.createObjectURL(file);
} }
public deleteProject() {
this.projectService.delete(this.server, this.project.project_id).subscribe(() => {
this.router.navigate(['/server', this.server.id, 'projects']);
});
}
public ngOnDestroy() { public ngOnDestroy() {
this.drawingsDataSource.clear(); this.drawingsDataSource.clear();
this.nodesDataSource.clear(); this.nodesDataSource.clear();