]> git.proxmox.com Git - pve-manager.git/commitdiff
add cmd parameter & rework query string creation
authorTim Marx <t.marx@proxmox.com>
Wed, 6 Mar 2019 11:29:39 +0000 (12:29 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 8 Mar 2019 11:30:11 +0000 (12:30 +0100)
Signed-off-by: Tim Marx <t.marx@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
www/manager6/Utils.js
www/manager6/VNCConsole.js

index b9fa25b72784200529eaf2da651712b1e826bff4..326a2527f7f0616f1ab55fbe23e814e60d246040 100644 (file)
@@ -1091,6 +1091,17 @@ Ext.define('PVE.Utils', { utilities: {
                return;
            }
        }
+    },
+
+    cleanEmptyObjectKeys: function (obj) {
+       var propName;
+       for (propName in obj) {
+           if (obj.hasOwnProperty(propName)) {
+               if (obj[propName] === null || obj[propName] === undefined) {
+                   delete obj[propName];
+               }
+           }
+       }
     }
 },
 
index 1438dd0c6d89094dd9c4e04b6817f298a7388401..cd8fa243ef4dfbd87c7cb5274720307dff9c43a6 100644 (file)
@@ -6,7 +6,9 @@ Ext.define('PVE.noVncConsole', {
 
     vmid: undefined,
 
-    consoleType: undefined, // lxc or kvm
+    cmd: undefined,
+
+    consoleType: undefined, // lxc, kvm, shell, cmd
 
     layout: 'fit',
 
@@ -14,6 +16,7 @@ Ext.define('PVE.noVncConsole', {
 
     border: false,
 
+
     initComponent : function() {
        var me = this;
 
@@ -25,7 +28,7 @@ Ext.define('PVE.noVncConsole', {
            throw "no console type specified";
        }
 
-       if (!me.vmid && me.consoleType !== 'shell') {
+       if (!me.vmid && me.consoleType !== 'shell' && me.consoleType !== 'cmd') {
            throw "no VM ID specified";
        }
 
@@ -34,15 +37,20 @@ Ext.define('PVE.noVncConsole', {
        var box = Ext.create('Ext.ux.IFrame', { itemid : "vncconsole" });
 
        var type = me.xtermjs ? 'xtermjs' : 'novnc';
-
        Ext.apply(me, {
            items: box,
            listeners: {
                activate: function() {
-                   var url = '/?console=' + me.consoleType + '&' + type + '=1&node=' + me.nodename + '&resize=scale';
-                   if (me.vmid) {
-                       url += '&vmid='+ me.vmid;
-                   }
+                   var queryDict = {
+                       console: me.consoleType, // kvm, lxc, upgrade or shell
+                       vmid: me.vmid,
+                       node: me.nodename,
+                       cmd: me.cmd,
+                       resize: 'scale'
+                   };
+                   queryDict[type] = 1;
+                   PVE.Utils.cleanEmptyObjectKeys(queryDict);
+                   var url = '/?' + Ext.Object.toQueryString(queryDict);
                    box.load(url);
                }
            }