]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager6/VNCConsole.js
api: add proxmox-firewall to versions pkg list
[pve-manager.git] / www / manager6 / VNCConsole.js
index cd8fa243ef4dfbd87c7cb5274720307dff9c43a6..9057e447f0cee1b26b609ae84e41b41efc0d2355 100644 (file)
@@ -3,21 +3,16 @@ Ext.define('PVE.noVncConsole', {
     alias: 'widget.pveNoVncConsole',
 
     nodename: undefined,
-
     vmid: undefined,
-
     cmd: undefined,
 
     consoleType: undefined, // lxc, kvm, shell, cmd
-
-    layout: 'fit',
-
     xtermjs: false,
 
+    layout: 'fit',
     border: false,
 
-
-    initComponent : function() {
+    initComponent: function() {
        var me = this;
 
        if (!me.nodename) {
@@ -34,26 +29,31 @@ Ext.define('PVE.noVncConsole', {
 
        // always use same iframe, to avoid running several noVnc clients
        // at same time (to avoid performance problems)
-       var box = Ext.create('Ext.ux.IFrame', { itemid : "vncconsole" });
+       var box = Ext.create('Ext.ux.IFrame', { itemid: "vncconsole" });
 
        var type = me.xtermjs ? 'xtermjs' : 'novnc';
        Ext.apply(me, {
            items: box,
            listeners: {
                activate: function() {
-                   var queryDict = {
+                   let sp = Ext.state.Manager.getProvider();
+                   if (Ext.isFunction(me.beforeLoad)) {
+                       me.beforeLoad();
+                   }
+                   let queryDict = {
                        console: me.consoleType, // kvm, lxc, upgrade or shell
                        vmid: me.vmid,
                        node: me.nodename,
                        cmd: me.cmd,
-                       resize: 'scale'
+                       'cmd-opts': me.cmdOpts,
+                       resize: sp.get('novnc-scaling', 'scale'),
                    };
                    queryDict[type] = 1;
                    PVE.Utils.cleanEmptyObjectKeys(queryDict);
                    var url = '/?' + Ext.Object.toQueryString(queryDict);
                    box.load(url);
-               }
-           }
+               },
+           },
        });
 
        me.callParent();
@@ -61,6 +61,12 @@ Ext.define('PVE.noVncConsole', {
        me.on('afterrender', function() {
            me.focus();
        });
-    }
+    },
+
+    reload: function() {
+       // reload IFrame content to forcibly reconnect VNC/xterm.js to VM
+       var box = this.down('[itemid=vncconsole]');
+       box.getWin().location.reload();
+    },
 });