diff --git a/src/app/components/project-map/new-template-dialog/new-template-dialog.component.html b/src/app/components/project-map/new-template-dialog/new-template-dialog.component.html index a14201ae..85ba90e0 100644 --- a/src/app/components/project-map/new-template-dialog/new-template-dialog.component.html +++ b/src/app/components/project-map/new-template-dialog/new-template-dialog.component.html @@ -113,49 +113,66 @@ {{secondActionTitle}} + + Please select appliance to install first + + -
- Server type
- - Install the appliance locally - Install the appliance on the GNS3 VM - +
+
+ Server type
+ + Install the appliance locally + Install the appliance on the GNS3 VM + +
+
+ Qemu binary
+ + + {{binary.path}} + + +
+
+ Install required files + + +
+
+ {{image.filename}} +
+
+ + + + +
+
+
+
+
-
- Qemu binary
- - - {{binary.path}} - - -
-
- Install required files - - -
-
- {{image.filename}} -
-
- - - - -
-
-
-
+ +
+
+ Server type
+ + Install the appliance locally + Install the appliance on the GNS3 VM + +
+
diff --git a/src/app/components/project-map/new-template-dialog/new-template-dialog.component.ts b/src/app/components/project-map/new-template-dialog/new-template-dialog.component.ts index eacf01ae..ca7ef243 100644 --- a/src/app/components/project-map/new-template-dialog/new-template-dialog.component.ts +++ b/src/app/components/project-map/new-template-dialog/new-template-dialog.component.ts @@ -13,6 +13,8 @@ import { QemuBinary } from '../../../models/qemu/qemu-binary'; import { QemuService } from '../../../services/qemu.service'; import { QemuTemplate } from '../../../models/templates/qemu-template'; import { v4 as uuid } from 'uuid'; +import { DockerTemplate } from '../../../models/templates/docker-template'; +import { DockerService } from '../../../services/docker.service'; @Component({ selector: 'app-new-template-dialog', @@ -64,6 +66,7 @@ export class NewTemplateDialogComponent implements OnInit { private changeDetector: ChangeDetectorRef, private toasterService: ToasterService, private qemuService: QemuService, + private dockerService: DockerService, public dialog: MatDialog ) {} @@ -246,7 +249,27 @@ export class NewTemplateDialogComponent implements OnInit { window.open(image.download_url); } - create(image: Image) { + createDockerTemplate() { + let dockerTemplate: DockerTemplate = new DockerTemplate(); + dockerTemplate.name = this.applianceToInstall.name; + dockerTemplate.adapters = this.applianceToInstall.docker.adapters; + dockerTemplate.console_type = this.applianceToInstall.docker.console_type; + dockerTemplate.builtin = this.applianceToInstall.builtin; + dockerTemplate.category = this.applianceToInstall.category; + dockerTemplate.default_name_format = this.applianceToInstall.port_name_format; + dockerTemplate.symbol = this.applianceToInstall.symbol; + dockerTemplate.compute_id = this.isGns3VmChosen ? 'vm' : 'local'; + dockerTemplate.template_id = uuid(); + dockerTemplate.image = this.applianceToInstall.docker.image; + dockerTemplate.template_type = 'docker'; + + this.dockerService.addTemplate(this.server, dockerTemplate).subscribe(() => { + this.toasterService.success('Template added'); + this.dialogRef.close(); + }); + } + + createQemuTemplate(image: Image) { let qemuTemplate: QemuTemplate = new QemuTemplate(); qemuTemplate.name = this.applianceToInstall.name; qemuTemplate.ram = this.applianceToInstall.qemu.ram;