[pve-devel] [PATCH manager] Close #2262: Add noVNC scale setting

Dominic Jäger d.jaeger at proxmox.com
Wed Aug 7 13:10:24 CEST 2019


Add a setting to choose the scale mode of the noVNC pop-up as well as the
embedded console in the content panel to "My Settings". Having both set to
local scaling was the most important use-case for the users. One setting for
both places is the simplest solution making this possible.

Signed-off-by: Dominic Jäger <d.jaeger at proxmox.com>
---
Adding an option to My Settings was proposed by Dietmar.

 www/manager6/Utils.js           |  3 +-
 www/manager6/VNCConsole.js      |  3 +-
 www/manager6/window/Settings.js | 50 ++++++++++++++++++++++++++++++++-
 3 files changed, 53 insertions(+), 3 deletions(-)

diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index 6838ef2f..36732a37 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -960,13 +960,14 @@ Ext.define('PVE.Utils', { utilities: {
     },
 
     openVNCViewer: function(vmtype, vmid, nodename, vmname, cmd) {
+	var sp = Ext.state.Manager.getProvider();
 	var url = Ext.Object.toQueryString({
 	    console: vmtype, // kvm, lxc, upgrade or shell
 	    novnc: 1,
 	    vmid: vmid,
 	    vmname: vmname,
 	    node: nodename,
-	    resize: 'off',
+	    resize: sp.get('novnc-scaling'),
 	    cmd: cmd
 	});
 	var nw = window.open("?" + url, '_blank', "innerWidth=745,innerheight=427");
diff --git a/www/manager6/VNCConsole.js b/www/manager6/VNCConsole.js
index cd8fa243..22c82257 100644
--- a/www/manager6/VNCConsole.js
+++ b/www/manager6/VNCConsole.js
@@ -41,12 +41,13 @@ Ext.define('PVE.noVncConsole', {
 	    items: box,
 	    listeners: {
 		activate: function() {
+		    var sp = Ext.state.Manager.getProvider();
 		    var queryDict = {
 			console: me.consoleType, // kvm, lxc, upgrade or shell
 			vmid: me.vmid,
 			node: me.nodename,
 			cmd: me.cmd,
-			resize: 'scale'
+			resize: sp.get('novnc-scaling'),
 		    };
 		    queryDict[type] = 1;
 		    PVE.Utils.cleanEmptyObjectKeys(queryDict);
diff --git a/www/manager6/window/Settings.js b/www/manager6/window/Settings.js
index 1a4d8599..0f7764ea 100644
--- a/www/manager6/window/Settings.js
+++ b/www/manager6/window/Settings.js
@@ -37,6 +37,13 @@ Ext.define('PVE.window.Settings', {
 
 	    var username = sp.get('login-username') || Proxmox.Utils.noneText;
 	    me.lookupReference('savedUserName').setValue(username);
+	    var vncMode = sp.get('novnc-scaling');
+	    if (vncMode === 'scale') {
+		me.lookupReference('radio-vnc-scale').setValue(true);
+	    } else {
+		// vncMode is 'off'
+		me.lookupReference('radio-vnc-off').setValue(true);
+	    }
 
 	    var settings = ['fontSize', 'fontFamily', 'letterSpacing', 'lineHeight'];
 	    settings.forEach(function(setting) {
@@ -246,7 +253,48 @@ Ext.define('PVE.window.Settings', {
 		    text: gettext('Reset Layout'),
 		    width: 'auto',
 		    name: 'reset'
-		}
+		},
+		{
+		    xtype: 'box',
+		    autoEl: { tag: 'hr'}
+		},
+		{
+		    xtype: 'displayfield',
+		    fieldLabel: gettext('noVNC scaling mode'),
+		    labelAlign: 'left',
+		    labelWidth: '50%'
+		},
+		{
+		    layout: {
+			type: 'hbox',
+			align: 'middle'
+		    },
+		    border: false,
+		    xtype: 'radiogroup',
+		    items: [
+			{
+			    xtype: 'radiofield',
+			    name: 'novnc-scaling',
+			    inputValue: 'scale',
+			    reference: 'radio-vnc-scale',
+			    boxLabel: 'Local Scaling',
+			},
+			{
+			    xtype: 'radiofield',
+			    name: 'novnc-scaling',
+			    inputValue: 'off',
+			    reference: 'radio-vnc-off',
+			    boxLabel: 'Off',
+			    margin: '0 0 0 10',
+			},
+		    ],
+		    listeners: {
+			change: function(el, newValue, undefined) {
+			    var sp = Ext.state.Manager.getProvider();
+			    sp.set('novnc-scaling', newValue['novnc-scaling']);
+			}
+		    },
+		},
 	    ]
     },{
 	xtype: 'fieldset',
-- 
2.20.1



More information about the pve-devel mailing list