diff --git a/.angular-cli.json b/.angular-cli.json
index 0ce55252..be4d2227 100644
--- a/.angular-cli.json
+++ b/.angular-cli.json
@@ -20,6 +20,7 @@
"prefix": "app",
"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.min.css",
+ "../node_modules/ng2-toasty/bundles/style-material.css",
"styles.css",
"theme.scss"
],
diff --git a/package-lock.json b/package-lock.json
index c5d87a6f..4e770737 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6219,6 +6219,11 @@
"inherits": "2.0.3"
}
},
+ "ng2-toasty": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/ng2-toasty/-/ng2-toasty-4.0.3.tgz",
+ "integrity": "sha1-6njvjRh1fUHrq6Eb2fkKVD9Y/Xo="
+ },
"no-case": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
diff --git a/package.json b/package.json
index 740bd439..125dec3c 100644
--- a/package.json
+++ b/package.json
@@ -28,6 +28,7 @@
"bootstrap": "^4.0.0-beta",
"core-js": "^2.4.1",
"d3-ng2-service": "^1.16.0",
+ "ng2-toasty": "^4.0.3",
"npm-check-updates": "^2.13.0",
"rxjs": "^5.4.1",
"zone.js": "^0.8.14"
diff --git a/src/app/app.component.html b/src/app/app.component.html
index 0680b43f..ab47ef55 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1 +1,2 @@
+
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index bd7a5359..2822ce86 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core';
import {Http} from "@angular/http";
import {MatIconRegistry} from "@angular/material";
import {DomSanitizer} from "@angular/platform-browser";
+import {ToastyConfig} from "ng2-toasty";
@Component({
selector: 'app-root',
@@ -11,8 +12,10 @@ import {DomSanitizer} from "@angular/platform-browser";
]
})
export class AppComponent implements OnInit {
- constructor(http: Http, iconReg: MatIconRegistry, sanitizer: DomSanitizer) {
- iconReg.addSvgIcon('gns3', sanitizer.bypassSecurityTrustResourceUrl('./assets/gns3_icon.svg'));
+ constructor(http: Http, iconReg: MatIconRegistry, sanitizer: DomSanitizer, toastyConfig: ToastyConfig) {
+ toastyConfig.theme = 'material';
+
+ iconReg.addSvgIcon('gns3', sanitizer.bypassSecurityTrustResourceUrl('./assets/gns3_icon.svg'));
}
ngOnInit(): void {
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index bc2402f6..65bade96 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -2,26 +2,7 @@ import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpModule } from '@angular/http';
import { FormsModule } from '@angular/forms';
-
-import { D3Service } from 'd3-ng2-service';
-import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
-
-import { AppRoutingModule } from './app-routing.module';
-
-import { AppComponent } from './app.component';
-import { MapComponent } from './cartography/map/map.component';
-import {CreateSnapshotDialogComponent, ProjectMapComponent} from './project-map/project-map.component';
-import { ServersComponent, AddServerDialogComponent } from './servers/servers.component';
-import { ProjectsComponent } from './projects/projects.component';
-
-import { VersionService } from './shared/services/version.service';
-import { ProjectService } from './shared/services/project.service';
-import { SymbolService } from "./shared/services/symbol.service";
-import { ServerService } from "./shared/services/server.service";
-import { IndexedDbService } from "./shared/services/indexed-db.service";
-import { HttpServer } from "./shared/services/http-server.service";
-import { DefaultLayoutComponent } from './default-layout/default-layout.component';
-
+import { CdkTableModule } from "@angular/cdk/table";
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import {
@@ -36,10 +17,30 @@ import {
MatDialogModule, MatProgressBarModule
} from '@angular/material';
-import {CdkTableModule} from "@angular/cdk/table";
-import {SnapshotService} from "./shared/services/snapshot.service";
+import { D3Service } from 'd3-ng2-service';
+import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
+import { ToastyModule } from 'ng2-toasty';
+
+import { AppRoutingModule } from './app-routing.module';
+
+
+import { VersionService } from './shared/services/version.service';
+import { ProjectService } from './shared/services/project.service';
+import { SymbolService } from "./shared/services/symbol.service";
+import { ServerService } from "./shared/services/server.service";
+import { IndexedDbService } from "./shared/services/indexed-db.service";
+import { HttpServer } from "./shared/services/http-server.service";
+import { SnapshotService } from "./shared/services/snapshot.service";
+import { ProgressDialogService } from "./shared/progress-dialog/progress-dialog.service";
+
+import { ProjectsComponent } from './projects/projects.component';
+import { DefaultLayoutComponent } from './default-layout/default-layout.component';
import { ProgressDialogComponent } from './shared/progress-dialog/progress-dialog.component';
-import {ProgressDialogService} from "./shared/progress-dialog/progress-dialog.service";
+import { AppComponent } from './app.component';
+import { MapComponent } from './cartography/map/map.component';
+import { CreateSnapshotDialogComponent, ProjectMapComponent } from './project-map/project-map.component';
+import { ServersComponent, AddServerDialogComponent } from './servers/servers.component';
+
@NgModule({
declarations: [
@@ -55,6 +56,7 @@ import {ProgressDialogService} from "./shared/progress-dialog/progress-dialog.se
],
imports: [
NgbModule.forRoot(),
+ ToastyModule.forRoot(),
BrowserModule,
HttpModule,
AppRoutingModule,
diff --git a/src/app/project-map/project-map.component.ts b/src/app/project-map/project-map.component.ts
index 4a7c797e..fac9c43d 100644
--- a/src/app/project-map/project-map.component.ts
+++ b/src/app/project-map/project-map.component.ts
@@ -19,11 +19,12 @@ import { MapComponent } from "../cartography/map/map.component";
import { ServerService } from "../shared/services/server.service";
import { ProjectService } from '../shared/services/project.service';
import { Server } from "../shared/models/server";
-import {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from "@angular/material";
-import {SnapshotService} from "../shared/services/snapshot.service";
-import {Snapshot} from "../shared/models/snapshot";
-import {ProgressDialogService} from "../shared/progress-dialog/progress-dialog.service";
-import {ProgressDialogComponent} from "../shared/progress-dialog/progress-dialog.component";
+import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from "@angular/material";
+import { SnapshotService } from "../shared/services/snapshot.service";
+import { Snapshot } from "../shared/models/snapshot";
+import { ProgressDialogService } from "../shared/progress-dialog/progress-dialog.service";
+import { ProgressDialogComponent } from "../shared/progress-dialog/progress-dialog.component";
+import { ToastyService } from "ng2-toasty";
@Component({
@@ -50,7 +51,8 @@ export class ProjectMapComponent implements OnInit {
private symbolService: SymbolService,
private snapshotService: SnapshotService,
private dialog: MatDialog,
- private progressDialogService: ProgressDialogService) {
+ private progressDialogService: ProgressDialogService,
+ private toastyService: ToastyService) {
}
ngOnInit() {
@@ -170,10 +172,17 @@ export class ProjectMapComponent implements OnInit {
const progress = this.progressDialogService.open();
const subscription = creation.subscribe((created_snapshot: Snapshot) => {
-
- }, () => {
-
- }, () => {
+ this.toastyService.success({
+ 'title': 'Snapshot created',
+ 'msg': `Snapshot '${snapshot.name}' has been created.`
+ });
+ progress.close();
+ }, (response) => {
+ const error = response.json();
+ this.toastyService.error({
+ 'title': 'Cannot create snapshot',
+ 'msg': error.message
+ });
progress.close();
});
diff --git a/src/app/servers/servers.component.ts b/src/app/servers/servers.component.ts
index 4c181872..dde32c7b 100644
--- a/src/app/servers/servers.component.ts
+++ b/src/app/servers/servers.component.ts
@@ -66,7 +66,7 @@ export class AddServerDialogComponent {
constructor(
public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data: any, serverService: ServerService) {
+ @Inject(MAT_DIALOG_DATA) public data: any) {
}
onAddClick(): void {