[pve-devel] [PATCH manager 4/5] gui: let users choose the number of columns

Dominik Csapak d.csapak at proxmox.com
Wed Dec 4 13:41:36 CET 2019


introduce a new browser setting, with which the users can choose between
the automatic mode of choosing columns, or always using 1/2/3 columns

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 www/manager6/Utils.js              | 11 ++++++++++-
 www/manager6/dc/Summary.js         |  7 +++++++
 www/manager6/node/Summary.js       |  8 ++++++++
 www/manager6/panel/GuestSummary.js |  7 +++++++
 www/manager6/window/Settings.js    | 26 ++++++++++++++++++++++++++
 5 files changed, 58 insertions(+), 1 deletion(-)

diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index 27826606..e61e2693 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -1283,7 +1283,16 @@ Ext.define('PVE.Utils', { utilities: {
     },
 
     updateColumns: function(container) {
-	let factor = container.getSize().width < 1400 ? 1 : 2;
+	let mode = Ext.state.Manager.get('summarycolumns') || 'auto';
+	let factor;
+	if (mode !== 'auto') {
+	    factor = parseInt(mode, 10);
+	    if (Number.isNaN(factor)) {
+		factor = 1;
+	    }
+	} else {
+	    factor = container.getSize().width < 1400 ? 1 : 2;
+	}
 
 	if (container.oldFactor === factor) {
 	    return;
diff --git a/www/manager6/dc/Summary.js b/www/manager6/dc/Summary.js
index aa460cfa..5e613eb1 100644
--- a/www/manager6/dc/Summary.js
+++ b/www/manager6/dc/Summary.js
@@ -288,6 +288,13 @@ Ext.define('PVE.dc.Summary', {
 	    rstore.stopUpdate();
 	});
 
+	me.mon(sp, 'statechange', function(provider, key, value) {
+	    if (key !== 'summarycolumns') {
+		return;
+	    }
+	    PVE.Utils.updateColumns(me);
+	});
+
 	rstore.startUpdate();
     }
 
diff --git a/www/manager6/node/Summary.js b/www/manager6/node/Summary.js
index dc66fe2b..f106d312 100644
--- a/www/manager6/node/Summary.js
+++ b/www/manager6/node/Summary.js
@@ -153,5 +153,13 @@ Ext.define('PVE.node.Summary', {
 	});
 
 	me.callParent();
+
+	let sp = Ext.state.Manager.getProvider();
+	me.mon(sp, 'statechange', function(provider, key, value) {
+	    if (key !== 'summarycolumns') {
+		return;
+	    }
+	    PVE.Utils.updateColumns(me.getComponent('itemcontainer'));
+	});
     }
 });
diff --git a/www/manager6/panel/GuestSummary.js b/www/manager6/panel/GuestSummary.js
index 9706734a..c888b3d3 100644
--- a/www/manager6/panel/GuestSummary.js
+++ b/www/manager6/panel/GuestSummary.js
@@ -131,5 +131,12 @@ Ext.define('PVE.qemu.Summary', {
 	    rrdstore.startUpdate();
 	    me.on('destroy', rrdstore.stopUpdate);
 	}
+	let sp = Ext.state.Manager.getProvider();
+	me.mon(sp, 'statechange', function(provider, key, value) {
+	    if (key !== 'summarycolumns') {
+		return;
+	    }
+	    PVE.Utils.updateColumns(me.getComponent('itemcontainer'));
+	});
     }
 });
diff --git a/www/manager6/window/Settings.js b/www/manager6/window/Settings.js
index fd754dfd..cb3f5446 100644
--- a/www/manager6/window/Settings.js
+++ b/www/manager6/window/Settings.js
@@ -42,6 +42,9 @@ Ext.define('PVE.window.Settings', {
 		me.lookupReference('noVNCScalingGroup').setValue({ noVNCScalingField: vncMode });
 	    }
 
+	    let summarycolumns = sp.get('summarycolumns');
+	    me.lookup('summarycolumns').setValue(summarycolumns || 'auto');
+
 	    var settings = ['fontSize', 'fontFamily', 'letterSpacing', 'lineHeight'];
 	    settings.forEach(function(setting) {
 		var val = localStorage.getItem('pve-xterm-' + setting);
@@ -163,6 +166,12 @@ Ext.define('PVE.window.Settings', {
 		    me.getSelectionModel().select(items);
 		    me.resumeEvent('selectionchange');
 		}
+	    },
+	    'field[reference=summarycolumns]': {
+		change: function(el, newValue) {
+		    var sp = Ext.state.Manager.getProvider();
+		    sp.set('summarycolumns', newValue);
+		}
 	    }
 	}
     },
@@ -261,6 +270,23 @@ Ext.define('PVE.window.Settings', {
 		    },
 		]
 	    },
+	    {
+		xtype: 'box',
+		autoEl: { tag: 'hr'}
+	    },
+	    {
+		xtype: 'proxmoxKVComboBox',
+		fieldLabel: gettext('Summary columns') + ':',
+		labelWidth: 150,
+		stateId: 'summarycolumns',
+		reference: 'summarycolumns',
+		comboItems: [
+		    ['auto', 'auto'],
+		    ['1', '1'],
+		    ['2', '2'],
+		    ['3', '3'],
+		],
+	    },
 	]
     },
     {
-- 
2.20.1




More information about the pve-devel mailing list