> Dominik Csapak <[email protected]> hat am 8. November 2018 um 13:53 
> geschrieben:
> 
> 
> On 11/8/18 1:20 PM, Tim Marx wrote:
> > 
> >> David Limbeck <[email protected]> hat am 7. November 2018 um 12:19 
> >> geschrieben:
> >>
> >>
> >> 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()
> > 
> > here the for loop, which you changed to 256 in a previous commit is now 8 
> > again.
> > Is this intended?
> > 
> >> @@ -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() {
> >> -- 
> > 
> > This would only change sorting for unused disks, disks in use are still 
> > sorted incorrect?
> > Maybe consider using localeCompare().
> > https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare
> > Should work in all recent browsers.
> 
> butusing localeCompare still does not fix the "foo5" > "foo10" problem 
> (or am i missing something?)
> 
> i would prefer to set the 'order' property on all keys where we loop 
> over them
> 

adding the numeric option should fix that, that's why I would prefer it.

example:
// expected output: 1
console.log("foo5".localeCompare("foo10"));
// expected output: -1
console.log("foo5".localeCompare("foo10", 'de', {numeric: true}));

excerpt from docs
numeric
Whether numeric collation should be used, such that "1" < "2" < "10". Possible 
values are true and false; the default is false. This option can be set through 
an options property or through a Unicode extension key; if both are provided, 
the options property takes precedence. Implementations are not required to 
support this property.

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

Best Regards,
Tim Marx
[email protected]
https://www.proxmox.com
_______________________________________________
 
Proxmox Server Solutions GmbH
BrÀuhausgasse 37, 1050 Vienna
Austria Commercial register no.: FN 258879 f
Registration office: Handelsgericht Wien

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

Reply via email to