[pve-devel] [PATCH manager v3 2/6] kvm_ostype: move to store-like format

Thomas Lamprecht t.lamprecht at proxmox.com
Fri Sep 22 14:20:23 CEST 2017


move from the key => value format to one where all versions from a
base OS type can be directly used as data for a store.

We will rely on this in the next patch to allow a easy transition to
combobox UI for the OS type selector.

We also avoid having the base type multiple times.

Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---
 www/manager6/Utils.js | 54 +++++++++++++++++++++++++++++++++++----------------
 1 file changed, 37 insertions(+), 17 deletions(-)

diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index 0d4217d4..5a79ffb4 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -58,16 +58,24 @@ Ext.define('PVE.Utils', { utilities: {
     noSubKeyHtml: 'You do not have a valid subscription for this server. Please visit <a target="_blank" href="http://www.proxmox.com/products/proxmox-ve/subscription-service-plans">www.proxmox.com</a> to get a list of available options.',
 
     kvm_ostypes: {
-	other: gettext('Other OS types'),
-	wxp: 'Microsoft Windows XP/2003',
-	w2k: 'Microsoft Windows 2000',
-	w2k8: 'Microsoft Windows Vista/2008',
-	win7: 'Microsoft Windows 7/2008r2',
-	win8: 'Microsoft Windows 8.x/2012/2012r2',
-	win10: 'Microsoft Windows 10/2016',
-	l24: 'Linux 2.4 Kernel',
-	l26: 'Linux 4.X/3.X/2.6 Kernel',
-	solaris: 'Solaris Kernel'
+	'Linux': [
+	    { desc: '4.X/3.X/2.6 Kernel', val: 'l26' },
+	    { desc: '2.4 Kernel', val: 'l24' }
+	],
+	'Microsoft Windows': [
+	    { desc: '10/2016', val: 'win10' },
+	    { desc: '8.x/2012/2012r2', val: 'win8' },
+	    { desc: '7/2008r2', val: 'win7' },
+	    { desc: 'Vista/2008', val: 'w2k8' },
+	    { desc: 'XP/2003', val: 'wxp' },
+	    { desc: '2000', val: 'w2k' }
+	],
+	'Solaris Kernel': [
+	    { desc: '-', val: 'solaris'}
+	],
+	'Other': [
+	    { desc: '-', val: 'other'}
+	]
     },
 
     get_health_icon: function(state, circle) {
@@ -124,15 +132,27 @@ Ext.define('PVE.Utils', { utilities: {
 	return state;
     },
 
-    render_kvm_ostype: function (value) {
-	if (!value) {
-	    return gettext('Other OS types');
+    get_kvm_osinfo: function(value) {
+	var info = { base: 'Other' }; // default
+	if (value) {
+	    Ext.each(Object.keys(PVE.Utils.kvm_ostypes), function(k) {
+		Ext.each(PVE.Utils.kvm_ostypes[k], function(e) {
+		    if (e.val === value) {
+			info = { desc: e.desc, base: k };
+		    }
+		});
+	    });
 	}
-	var text = PVE.Utils.kvm_ostypes[value];
-	if (text) {
-	    return text;
+	return info;
+    },
+
+    render_kvm_ostype: function (value) {
+	var osinfo = PVE.Utils.get_kvm_osinfo(value);
+	if (osinfo.desc && osinfo.desc !== '-') {
+	    return osinfo.base + ' ' + osinfo.desc;
+	} else {
+	    return osinfo.base;
 	}
-	return value;
     },
 
     render_hotplug_features: function (value) {
-- 
2.11.0





More information about the pve-devel mailing list