]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager6/ceph/Pool.js
ui: eslint: fix various spacing related issues
[pve-manager.git] / www / manager6 / ceph / Pool.js
index f0569425836fc160a4edce5e67c0651095e1553a..5dabd4e67a9a75c971f3fff573fd88fcd9c20371 100644 (file)
@@ -13,7 +13,7 @@ Ext.define('PVE.CephCreatePool', {
            xtype: 'textfield',
            fieldLabel: gettext('Name'),
            name: 'name',
-           allowBlank: false
+           allowBlank: false,
        },
        {
            xtype: 'proxmoxintegerfield',
@@ -22,7 +22,7 @@ Ext.define('PVE.CephCreatePool', {
            value: 3,
            minValue: 1,
            maxValue: 7,
-           allowBlank: false
+           allowBlank: false,
        },
        {
            xtype: 'proxmoxintegerfield',
@@ -31,13 +31,26 @@ Ext.define('PVE.CephCreatePool', {
            value: 2,
            minValue: 1,
            maxValue: 7,
-           allowBlank: false
+           allowBlank: false,
        },
        {
            xtype: 'pveCephRuleSelector',
            fieldLabel: 'Crush Rule', // do not localize
            name: 'crush_rule',
-           allowBlank: false
+           allowBlank: false,
+       },
+       {
+           xtype: 'proxmoxKVComboBox',
+           fieldLabel: 'PG Autoscale Mode', // do not localize
+           name: 'pg_autoscale_mode',
+           comboItems: [
+               ['warn', 'warn'],
+               ['on', 'on'],
+               ['off', 'off'],
+           ],
+           value: 'warn',
+           allowBlank: false,
+           autoSelect: false,
        },
        {
            xtype: 'proxmoxintegerfield',
@@ -46,16 +59,21 @@ Ext.define('PVE.CephCreatePool', {
            value: 128,
            minValue: 8,
            maxValue: 32768,
-           allowBlank: false
+           allowBlank: true,
+           emptyText: gettext('Autoscale'),
        },
        {
            xtype: 'proxmoxcheckbox',
-           fieldLabel: gettext('Add Storage'),
-           name: 'add_storages'
-       }
+           fieldLabel: gettext('Add as Storage'),
+           value: true,
+           name: 'add_storages',
+           autoEl: {
+               tag: 'div',
+                'data-qtip': gettext('Add the new pool to the cluster storage configuration.'),
+           },
+       },
     ],
-    initComponent : function() {
-        /*jslint confusion: true */
+    initComponent: function() {
         var me = this;
 
        if (!me.nodename) {
@@ -65,12 +83,12 @@ Ext.define('PVE.CephCreatePool', {
         Ext.apply(me, {
            url: "/nodes/" + me.nodename + "/ceph/pools",
            defaults: {
-               nodename: me.nodename
-           }
+               nodename: me.nodename,
+           },
         });
 
         me.callParent();
-    }
+    },
 });
 
 Ext.define('PVE.node.CephPoolList', {
@@ -78,73 +96,87 @@ Ext.define('PVE.node.CephPoolList', {
     alias: 'widget.pveNodeCephPoolList',
 
     onlineHelp: 'chapter_pveceph',
+
     stateful: true,
     stateId: 'grid-ceph-pools',
     bufferedRenderer: false,
-    features: [ { ftype: 'summary'} ],
+
+    features: [{ ftype: 'summary' }],
+
     columns: [
        {
            header: gettext('Name'),
-           width: 100,
+           width: 120,
            sortable: true,
-           dataIndex: 'pool_name'
+           dataIndex: 'pool_name',
        },
        {
            header: gettext('Size') + '/min',
-           width: 80,
-           sortable: false,
+           width: 100,
+           align: 'right',
            renderer: function(v, meta, rec) {
                return v + '/' + rec.data.min_size;
            },
-           dataIndex: 'size'
+           dataIndex: 'size',
        },
        {
-           header: 'pg_num',
-           width: 100,
-           sortable: false,
-           dataIndex: 'pg_num'
-       },
-       {
-           header: 'rule',
-           width: 50,
-           sortable: false,
-           dataIndex: 'crush_rule'
+           text: 'Placement Groups',
+           columns: [
+               {
+                   text: '# of PGs', // pg_num',
+                   width: 150,
+                   align: 'right',
+                   dataIndex: 'pg_num',
+               },
+               {
+                   text: gettext('Autoscale'),
+                   width: 140,
+                   align: 'right',
+                   dataIndex: 'pg_autoscale_mode',
+               },
+           ],
        },
        {
-           header: 'rule_name',
-           width: 50,
-           sortable: false,
-           dataIndex: 'crush_rule_name'
+           text: 'CRUSH Rule',
+           columns: [
+               {
+                   text: 'ID',
+                   align: 'right',
+                   width: 50,
+                   dataIndex: 'crush_rule',
+               },
+               {
+                   text: gettext('Name'),
+                   width: 150,
+                   dataIndex: 'crush_rule_name',
+               },
+           ],
        },
        {
-           header: gettext('Used'),
+           text: gettext('Used'),
            columns: [
                {
-                   header: '%',
-                   width: 80,
+                   text: '%',
+                   width: 100,
                    sortable: true,
                    align: 'right',
                    renderer: function(val) {
                        return Ext.util.Format.percent(val, '0.00');
                    },
                    dataIndex: 'percent_used',
-                   summaryType: 'sum',
-                   summaryRenderer: function(val) {
-                       return Ext.util.Format.percent(val, '0.00');
-                   },
                },
                {
-                   header: gettext('Total'),
+                   text: gettext('Total'),
                    width: 100,
                    sortable: true,
                    renderer: PVE.Utils.render_size,
                    align: 'right',
                    dataIndex: 'bytes_used',
                    summaryType: 'sum',
-                   summaryRenderer: PVE.Utils.render_size
-               }
-           ]
-       }
+                   summaryRenderer: PVE.Utils.render_size,
+               },
+           ],
+       },
     ],
     initComponent: function() {
         var me = this;
@@ -162,21 +194,21 @@ Ext.define('PVE.node.CephPoolList', {
            model: 'ceph-pool-list',
            proxy: {
                 type: 'proxmox',
-                url: "/api2/json/nodes/" + nodename + "/ceph/pools"
-           }
+                url: "/api2/json/nodes/" + nodename + "/ceph/pools",
+           },
        });
 
        var store = Ext.create('Proxmox.data.DiffStore', { rstore: rstore });
 
        var regex = new RegExp("not (installed|initialized)", "i");
-       PVE.Utils.handleStoreErrorOrMask(me, rstore, regex, function(me, error){
+       PVE.Utils.handleStoreErrorOrMask(me, rstore, regex, function(me, error) {
            me.store.rstore.stopUpdate();
            PVE.Utils.showCephInstallOrMask(me, error.statusText, nodename,
-               function(win){
-                   me.mon(win, 'cephInstallWindowClosed', function(){
+               function(win) {
+                   me.mon(win, 'cephInstallWindowClosed', function() {
                        me.store.rstore.startUpdate();
                    });
-               }
+               },
            );
        });
 
@@ -184,13 +216,13 @@ Ext.define('PVE.node.CephPoolList', {
            text: gettext('Create'),
            handler: function() {
                var win = Ext.create('PVE.CephCreatePool', {
-                    nodename: nodename
+                    nodename: nodename,
                });
                win.show();
                win.on('destroy', function() {
                    rstore.load();
                });
-           }
+           },
        });
 
        var destroy_btn = Ext.create('Proxmox.button.Button', {
@@ -210,43 +242,42 @@ Ext.define('PVE.node.CephPoolList', {
                    showProgress: true,
                    url: base_url,
                    params: {
-                       remove_storages: 1
+                       remove_storages: 1,
                    },
-                   item: { type: 'CephPool', id: rec.data.pool_name }
+                   item: { type: 'CephPool', id: rec.data.pool_name },
                }).show();
                win.on('destroy', function() {
                    rstore.load();
                });
-           }
+           },
        });
 
        Ext.apply(me, {
            store: store,
            selModel: sm,
-           tbar: [ create_btn, destroy_btn ],
+           tbar: [create_btn, destroy_btn],
            listeners: {
-               activate: rstore.startUpdate,
-               destroy: rstore.stopUpdate
-           }
+               activate: () => rstore.startUpdate(),
+               destroy: () => rstore.stopUpdate(),
+           },
        });
 
        me.callParent();
-    }
+    },
 }, function() {
-
     Ext.define('ceph-pool-list', {
        extend: 'Ext.data.Model',
-       fields: [ 'pool_name',
-                 { name: 'pool', type: 'integer'},
-                 { name: 'size', type: 'integer'},
-                 { name: 'min_size', type: 'integer'},
-                 { name: 'pg_num', type: 'integer'},
-                 { name: 'bytes_used', type: 'integer'},
-                 { name: 'percent_used', type: 'number'},
-                 { name: 'crush_rule', type: 'integer'},
-                 { name: 'crush_rule_name', type: 'string'}
+       fields: ['pool_name',
+                 { name: 'pool', type: 'integer' },
+                 { name: 'size', type: 'integer' },
+                 { name: 'min_size', type: 'integer' },
+                 { name: 'pg_num', type: 'integer' },
+                 { name: 'bytes_used', type: 'integer' },
+                 { name: 'percent_used', type: 'number' },
+                 { name: 'crush_rule', type: 'integer' },
+                 { name: 'crush_rule_name', type: 'string' },
                ],
-       idProperty: 'pool_name'
+       idProperty: 'pool_name',
     });
 });
 
@@ -272,23 +303,23 @@ Ext.define('PVE.form.CephRuleSelector', {
            sorters: 'name',
            proxy: {
                type: 'proxmox',
-               url: '/api2/json/nodes/' + me.nodename + '/ceph/rules'
-           }
+               url: '/api2/json/nodes/' + me.nodename + '/ceph/rules',
+           },
        });
 
        Ext.apply(me, {
-           store: store
+           store: store,
        });
 
        me.callParent();
 
        store.load({
-           callback: function(rec, op, success){
+           callback: function(rec, op, success) {
                if (success && rec.length > 0) {
                    me.select(rec[0]);
                }
-           }
+           },
        });
-    }
+    },
 
 });