]> git.proxmox.com Git - pve-manager.git/commitdiff
ui: ProcessorEdit: fix total core calculation and use view model
authorStefan Reiter <s.reiter@proxmox.com>
Mon, 4 May 2020 10:58:41 +0000 (12:58 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 17 Jun 2020 13:51:11 +0000 (15:51 +0200)
Clean up the code in ProcessorEdit with a view model and fix a bug while at
it - previously, pressing the 'Reset' button on the form would always set
the value of the total core count field to 1, so mark 'totalcores' with
'isFormField: false' to avoid reset.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
www/manager6/qemu/ProcessorEdit.js

index bc17e1527c1da05ed4f925db8100ba95f8e779b8..f437a82c90fe2e02fd1491f4c31938355783b165 100644 (file)
@@ -5,28 +5,18 @@ Ext.define('PVE.qemu.ProcessorInputPanel', {
 
     insideWizard: false,
 
-    controller: {
-       xclass: 'Ext.app.ViewController',
-
-       updateCores: function() {
-           var me = this.getView();
-           var sockets = me.down('field[name=sockets]').getValue();
-           var cores = me.down('field[name=cores]').getValue();
-           me.down('field[name=totalcores]').setValue(sockets*cores);
-           var vcpus = me.down('field[name=vcpus]');
-           vcpus.setMaxValue(sockets*cores);
-           vcpus.setEmptyText(sockets*cores);
-           vcpus.validate();
+    viewModel: {
+       data: {
+           socketCount: 1,
+           coreCount: 1,
        },
+       formulas: {
+           totalCoreCount: get => get('socketCount') * get('coreCount'),
+       },
+    },
 
-       control: {
-           'field[name=sockets]': {
-               change: 'updateCores'
-           },
-           'field[name=cores]': {
-               change: 'updateCores'
-           }
-       }
+    controller: {
+       xclass: 'Ext.app.ViewController',
     },
 
     onGetValues: function(values) {
@@ -86,7 +76,10 @@ Ext.define('PVE.qemu.ProcessorInputPanel', {
            maxValue: 4,
            value: '1',
            fieldLabel: gettext('Sockets'),
-           allowBlank: false
+           allowBlank: false,
+           bind: {
+               value: '{socketCount}',
+           },
        },
        {
            xtype: 'proxmoxintegerfield',
@@ -95,8 +88,11 @@ Ext.define('PVE.qemu.ProcessorInputPanel', {
            maxValue: 128,
            value: '1',
            fieldLabel: gettext('Cores'),
-           allowBlank: false
-       }
+           allowBlank: false,
+           bind: {
+               value: '{coreCount}',
+           },
+       },
     ],
 
     column2: [
@@ -109,8 +105,11 @@ Ext.define('PVE.qemu.ProcessorInputPanel', {
            xtype: 'displayfield',
            fieldLabel: gettext('Total cores'),
            name: 'totalcores',
-           value: '1'
-       }
+           isFormField: false,
+           bind: {
+               value: '{totalCoreCount}',
+           },
+       },
     ],
 
     advancedColumn1: [
@@ -123,7 +122,11 @@ Ext.define('PVE.qemu.ProcessorInputPanel', {
            fieldLabel: gettext('VCPUs'),
            deleteEmpty: true,
            allowBlank: true,
-           emptyText: '1'
+           emptyText: '1',
+           bind: {
+               emptyText: '{totalCoreCount}',
+               maxValue: '{totalCoreCount}',
+           },
        },
        {
            xtype: 'numberfield',