]> git.proxmox.com Git - pve-manager.git/commitdiff
allow xtermjs to be the default console
authorDominik Csapak <d.csapak@proxmox.com>
Fri, 20 Apr 2018 13:37:47 +0000 (15:37 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 23 Apr 2018 07:42:55 +0000 (09:42 +0200)
if not available for a vm, we fallback to novnc like with spice

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
www/manager6/Utils.js
www/manager6/button/ConsoleButton.js
www/manager6/qemu/CmdMenu.js

index af03958c58aa6bad26fda30f8b6f5e221edff021..d0de3829ea050cd67fdf17d6116e96450ec7ea11 100644 (file)
@@ -278,20 +278,23 @@ Ext.define('PVE.Utils', { utilities: {
        return data;
     },
 
+    console_map: {
+       '__default__': Proxmox.Utils.defaultText + ' (HTML5)',
+       'vv': 'SPICE (remote-viewer)',
+       'html5': 'HTML5 (noVNC)',
+       'xtermjs': 'xterm.js',
+    },
+
     render_console_viewer: function(value) {
-       if (!value || value === '__default__') {
-           return Proxmox.Utils.defaultText + ' (HTML5)';
-       } else if (value === 'vv') {
-           return  'SPICE (remote-viewer)';
-       } else if (value === 'html5') {
-           return  'HTML5 (noVNC)';
-       } else {
-           return value;
+       value = value || '__default__';
+       if (PVE.Utils.console_map[value]) {
+           return PVE.Utils.console_map[value];
        }
+       return value;
     },
 
     console_viewer_array: function() {
-       return Ext.Array.map(['__default__','vv', 'html5'], function(v) {
+       return Ext.Array.map(Object.keys(PVE.Utils.console_map), function(v) {
            return [v, PVE.Utils.render_console_viewer(v)];
        });
     },
@@ -723,8 +726,8 @@ Ext.define('PVE.Utils', { utilities: {
             function(m, addr, offset, original) { return addr; });
     },
 
-    openDefaultConsoleWindow: function(allowSpice, vmtype, vmid, nodename, vmname) {
-       var dv = PVE.Utils.defaultViewer(allowSpice);
+    openDefaultConsoleWindow: function(consoles, vmtype, vmid, nodename, vmname) {
+       var dv = PVE.Utils.defaultViewer(consoles);
        PVE.Utils.openConsoleWindow(dv, vmtype, vmid, nodename, vmname);
     },
 
@@ -765,10 +768,20 @@ Ext.define('PVE.Utils', { utilities: {
        }
     },
 
-    defaultViewer: function(allowSpice) {
+    defaultViewer: function(consoles) {
+
+       var allowSpice, allowXtermjs;
+
+       if (consoles === true) {
+           allowSpice = true;
+           allowXtermjs = true;
+       } else if (typeof consoles === 'object') {
+           allowSpice = consoles.spice;
+           allowXtermjs = consoles.xtermjs;
+       }
        var vncdefault = 'html5';
        var dv = PVE.VersionInfo.console || vncdefault;
-       if (dv === 'vv' && !allowSpice) {
+       if ((dv === 'vv' && !allowSpice) || (dv === 'xtermjs' && !allowXtermjs)) {
            dv = vncdefault;
        }
 
index 97bed1700248599ad3d85169d9b54e2f5c2e5969..d825e1fbb9cdf6f64dcf273a3eb8a14fe20bc8c0 100644 (file)
@@ -33,7 +33,11 @@ Ext.define('PVE.button.ConsoleButton', {
 
     handler: function() {
        var me = this;
-       PVE.Utils.openDefaultConsoleWindow(me.enableSpice, me.consoleType, me.vmid,
+       var consoles = {
+           spice: me.enableSpice,
+           xtermjs: me.enableXtermjs
+       };
+       PVE.Utils.openDefaultConsoleWindow(consoles, me.consoleType, me.vmid,
                                           me.nodename, me.consoleName);
     },
 
index 00af7cbcaefbe2d705ac041577bd0fda58928a88..da6f556ab036c110566f80fc0d4093e98698c277 100644 (file)
@@ -169,7 +169,12 @@ Ext.define('PVE.qemu.CmdMenu', {
                        },
                        success: function(response, opts) {
                            var allowSpice = response.result.data.spice;
-                           PVE.Utils.openDefaultConsoleWindow(allowSpice, 'kvm', vmid, nodename, vmname);
+                           var allowXtermjs = response.result.data.serial;
+                           var consoles = {
+                               spice: allowSpice,
+                               xtermjs: allowXtermjs
+                           };
+                           PVE.Utils.openDefaultConsoleWindow(consoles, 'kvm', vmid, nodename, vmname);
                        }
                    });
                }