mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2024-12-19 13:07:52 +00:00
Custom console for particular node
This commit is contained in:
parent
78767399fc
commit
380a45883e
@ -1,23 +1,43 @@
|
||||
import { Component, Input } from '@angular/core';
|
||||
import { Node } from '../../../../../cartography/models/node';
|
||||
import { ToasterService } from '../../../../../services/toaster.service';
|
||||
import { NodeService } from '../../../../../services/node.service';
|
||||
import { Server } from '../../../../../models/server';
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-console-device-action-browser',
|
||||
templateUrl: './console-device-action-browser.component.html'
|
||||
})
|
||||
export class ConsoleDeviceActionBrowserComponent {
|
||||
@Input() server: Server;
|
||||
@Input() node: Node;
|
||||
|
||||
constructor(
|
||||
private toasterService: ToasterService
|
||||
private toasterService: ToasterService,
|
||||
private nodeService: NodeService
|
||||
) {}
|
||||
|
||||
openConsole() {
|
||||
if(this.node.status !== "started") {
|
||||
this.nodeService.getNode(this.server, this.node).subscribe((node: Node) => {
|
||||
this.node = node;
|
||||
this.startConsole();
|
||||
});
|
||||
}
|
||||
|
||||
startConsole() {
|
||||
if (this.node.status !== "started") {
|
||||
this.toasterService.error("This node must be started before a console can be opened");
|
||||
} else {
|
||||
location.assign(`telnet://${this.node.console_host}:${this.node.console}/`);
|
||||
if (this.node.console_type === "telnet") {
|
||||
location.assign(`gns3+telnet://${this.node.console_host}:${this.node.console}?name=${this.node.name}&project_id=${this.node.project_id}&node_id=${this.node.node_id}`);
|
||||
} else if (this.node.console_type === "vnc") {
|
||||
location.assign(`gns3+vnc://${this.node.console_host}:${this.node.console}?name=${this.node.name}&project_id=${this.node.project_id}&node_id=${this.node.node_id}`);
|
||||
} else if(this.node.console_type === "spice") {
|
||||
location.assign(`gns3+spice://${this.node.console_host}:${this.node.console}?name=${this.node.name}&project_id=${this.node.project_id}&node_id=${this.node.node_id}`);
|
||||
} else {
|
||||
this.toasterService.error("Supported console types: telnet, vnc, spice.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -21,7 +21,8 @@
|
||||
[nodes]="nodes"
|
||||
></app-console-device-action>
|
||||
<app-console-device-action-browser
|
||||
*ngIf="!projectService.isReadOnly(project) && nodes.length===1 && !isElectronApp && nodes[0].console_type!=='none'"
|
||||
*ngIf="!projectService.isReadOnly(project) && nodes.length===1 && !isElectronApp"
|
||||
[server]="server"
|
||||
[node]="nodes[0]"
|
||||
></app-console-device-action-browser>
|
||||
<app-change-symbol-action
|
||||
|
Loading…
Reference in New Issue
Block a user