sort based on group for everything and unused disks based on their
number (unused2 before unused10) as well as add groups to every item and
keep original order

Signed-off-by: David Limbeck <[email protected]>
---
 www/manager6/qemu/HardwareView.js | 36 ++++++++++++++++++++++++++++--------
 1 file changed, 28 insertions(+), 8 deletions(-)

diff --git a/www/manager6/qemu/HardwareView.js 
b/www/manager6/qemu/HardwareView.js
index f2a3e244..3a17751d 100644
--- a/www/manager6/qemu/HardwareView.js
+++ b/www/manager6/qemu/HardwareView.js
@@ -53,6 +53,7 @@ Ext.define('PVE.qemu.HardwareView', {
                never_delete: true,
                defaultValue: '512',
                tdCls: 'pve-itype-icon-memory',
+               group: 2,
                multiKey: ['memory', 'balloon', 'shares'],
                renderer: function(value, metaData, record, ri, ci, store, 
pending) {
                    var res = '';
@@ -81,6 +82,7 @@ Ext.define('PVE.qemu.HardwareView', {
                editor: (caps.vms['VM.Config.CPU'] || 
caps.vms['VM.Config.HWType']) ? 
                    'PVE.qemu.ProcessorEdit' : undefined,
                tdCls: 'pve-itype-icon-processor',
+               group: 3,
                defaultValue: '1',
                multiKey: ['sockets', 'cpu', 'cores', 'numa', 'vcpus', 
'cpulimit', 'cpuunits'],
                renderer: function(value, metaData, record, rowIndex, colIndex, 
store, pending) {
@@ -124,6 +126,7 @@ Ext.define('PVE.qemu.HardwareView', {
                never_delete: true,
                editor: caps.vms['VM.Config.Options'] ? 'PVE.qemu.KeyboardEdit' 
: undefined,
                tdCls: 'pve-itype-icon-keyboard',
+               group: 1,
                defaultValue: '',
                renderer: PVE.Utils.render_kvm_language
            },
@@ -132,6 +135,7 @@ Ext.define('PVE.qemu.HardwareView', {
                editor: caps.vms['VM.Config.HWType'] ? 'PVE.qemu.DisplayEdit' : 
undefined,
                never_delete: true,
                tdCls: 'pve-itype-icon-display',
+               group:4,
                defaultValue: '',
                renderer: PVE.Utils.render_kvm_vga_driver               
            },
@@ -170,7 +174,7 @@ Ext.define('PVE.qemu.HardwareView', {
        PVE.Utils.forEachBus(undefined, function(type, id) {
            var confid = type + id;
            rows[confid] = {
-               group: 1,
+               group: 5,
                tdCls: 'pve-itype-icon-storage',
                editor: 'PVE.qemu.HDEdit',
                never_delete: caps.vms['VM.Config.Disk'] ? false : true,
@@ -182,7 +186,7 @@ Ext.define('PVE.qemu.HardwareView', {
        for (i = 0; i < 32; i++) {
            confid = "net" + i.toString();
            rows[confid] = {
-               group: 2,
+               group: 6,
                tdCls: 'pve-itype-icon-network',
                editor: caps.vms['VM.Config.Network'] ? 'PVE.qemu.NetworkEdit' 
: undefined,
                never_delete: caps.vms['VM.Config.Network'] ? false : true,
@@ -190,7 +194,7 @@ Ext.define('PVE.qemu.HardwareView', {
            };
        }
        rows.efidisk0 = {
-           group: 3,
+           group: 7,
            tdCls: 'pve-itype-icon-storage',
            editor: null,
            never_delete: caps.vms['VM.Config.Disk'] ? false : true,
@@ -199,7 +203,7 @@ Ext.define('PVE.qemu.HardwareView', {
        for (i = 0; i < 5; i++) {
            confid = "usb" + i.toString();
            rows[confid] = {
-               group: 4,
+               group: 8,
                tdCls: 'pve-itype-icon-usb',
                editor: caps.nodes['Sys.Console'] ? 'PVE.qemu.USBEdit' : 
undefined,
                never_delete: caps.nodes['Sys.Console'] ? false : true,
@@ -209,7 +213,7 @@ Ext.define('PVE.qemu.HardwareView', {
        for (i = 0; i < 4; i++) {
            confid = "hostpci" + i.toString();
            rows[confid] = {
-               group: 5,
+               group: 9,
                tdCls: 'pve-itype-icon-pci',
                never_delete: caps.nodes['Sys.Console'] ? false : true,
                header: gettext('PCI Device') + ' (' + confid + ')'
@@ -218,7 +222,7 @@ Ext.define('PVE.qemu.HardwareView', {
        for (i = 0; i < 4; i++) {
            confid = "serial" + i.toString();
            rows[confid] = {
-               group: 6,
+               group: 10,
                tdCls: 'pve-itype-icon-serial',
                never_delete: caps.nodes['Sys.Console'] ? false : true,
                header: gettext('Serial Port') + ' (' + confid + ')'
@@ -227,6 +231,7 @@ Ext.define('PVE.qemu.HardwareView', {
        for (i = 0; i < 8; i++) {
            rows["unused" + i.toString()] = {
                group: 99,
+               order: i,
                tdCls: 'pve-itype-icon-storage',
                editor: caps.vms['VM.Config.Disk'] ? 'PVE.qemu.HDEdit' : 
undefined,
                header: gettext('Unused Disk') + ' ' + i.toString()
@@ -238,9 +243,24 @@ Ext.define('PVE.qemu.HardwareView', {
            var v2 = rec2.data.key;
            var g1 = rows[v1].group || 0;
            var g2 = rows[v2].group || 0;
+           var order1 = rows[v1].order || 0;
+           var order2 = rows[v2].order || 0;
+
+           if ((g1 - g2) !== 0) {
+               return g1 - g2;
+           }
            
-           return (g1 !== g2) ? 
-               (g1 > g2 ? 1 : -1) : (v1 > v2 ? 1 : (v1 < v2 ? -1 : 0));
+           if ((order1 - order2) !== 0) {
+               return order1 - order2;
+           }
+
+           if (v1 > v2) {
+               return 1;
+           } else if (v1 < v2) {
+               return -1;
+           } else {
+               return 0;
+           }
        };
 
        var reload = function() {
-- 
2.11.0


_______________________________________________
pve-devel mailing list
[email protected]
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to