They cannot be changed after pool creation for erasure coded pools

Signed-off-by: Aaron Lauterer <a.laute...@proxmox.com>
---
 www/manager6/ceph/Pool.js | 44 ++++++++++++++++++++++++++-------------
 1 file changed, 29 insertions(+), 15 deletions(-)

diff --git a/www/manager6/ceph/Pool.js b/www/manager6/ceph/Pool.js
index 41df216e..16b903ce 100644
--- a/www/manager6/ceph/Pool.js
+++ b/www/manager6/ceph/Pool.js
@@ -19,21 +19,28 @@ Ext.define('PVE.CephPoolInputPanel', {
            allowBlank: false,
        },
        {
-           xtype: 'proxmoxintegerfield',
+           xtype: 'pmxDisplayEditField',
+           cbind: {
+               editable: '{!isErasure}',
+           },
            fieldLabel: gettext('Size'),
            name: 'size',
-           value: 3,
-           minValue: 2,
-           maxValue: 7,
-           allowBlank: false,
-           listeners: {
-               change: function(field, val) {
-                   let size = Math.round(val / 2);
-                   if (size > 1) {
-                       
field.up('inputpanel').down('field[name=min_size]').setValue(size);
-                   }
+           editConfig: {
+               xtype: 'proxmoxintegerfield',
+               value: 3,
+               minValue: 2,
+               maxValue: 7,
+               allowBlank: false,
+               listeners: {
+                   change: function(field, val) {
+                       let size = Math.round(val / 2);
+                       if (size > 1) {
+                           
field.up('inputpanel').down('field[name=min_size]').setValue(size);
+                       }
+                   },
                },
            },
+
        },
     ],
     column2: [
@@ -101,14 +108,18 @@ Ext.define('PVE.CephPoolInputPanel', {
            hidden: true,
        },
        {
-           xtype: 'pveCephRuleSelector',
-           fieldLabel: 'Crush Rule', // do not localize
-           name: 'crush_rule',
+           xtype: 'pmxDisplayEditField',
            cbind: {
+               editable: '{!isErasure}',
                nodename: '{nodename}',
                isCreate: '{isCreate}',
            },
-           allowBlank: false,
+           fieldLabel: 'Crush Rule', // do not localize
+           name: 'crush_rule',
+           editConfig: {
+               xtype: 'pveCephRuleSelector',
+               allowBlank: false,
+           },
        },
        {
            xtype: 'proxmoxintegerfield',
@@ -203,6 +214,7 @@ Ext.define('PVE.Ceph.PoolEdit', {
        cbind: {
            nodename: '{nodename}',
            pool_name: '{pool_name}',
+           isErasure: '{isErasure}',
            isCreate: '{isCreate}',
        },
     }],
@@ -354,6 +366,7 @@ Ext.define('PVE.node.Ceph.PoolList', {
                title: gettext('Edit') + ': Ceph Pool',
                nodename: nodename,
                pool_name: rec.data.pool_name,
+               isErasure: rec.data.type === 'erasure',
                autoShow: true,
                listeners: {
                    destroy: () => rstore.load(),
@@ -371,6 +384,7 @@ Ext.define('PVE.node.Ceph.PoolList', {
                        Ext.create('PVE.Ceph.PoolEdit', {
                            title: gettext('Create') + ': Ceph Pool',
                            isCreate: true,
+                           isErasure: false,
                            nodename: nodename,
                            autoShow: true,
                            listeners: {
-- 
2.30.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to