render_zfs_health is now in widget-toolkit
as well as the 'MultiDiskSelector' and the Detailwindow

and drop the now unnecessary classes

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
 www/manager6/Utils.js    |  26 ----
 www/manager6/node/ZFS.js | 255 +--------------------------------------
 2 files changed, 6 insertions(+), 275 deletions(-)

diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index 1dae292e..37327ded 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -193,32 +193,6 @@ Ext.define('PVE.Utils', { utilities: {
        return state;
     },
 
-    render_zfs_health: function(value) {
-       if (typeof value == 'undefined'){
-           return "";
-       }
-       var iconCls = 'question-circle';
-       switch (value) {
-           case 'AVAIL':
-           case 'ONLINE':
-               iconCls = 'check-circle good';
-               break;
-           case 'REMOVED':
-           case 'DEGRADED':
-               iconCls = 'exclamation-circle warning';
-               break;
-           case 'UNAVAIL':
-           case 'FAULTED':
-           case 'OFFLINE':
-               iconCls = 'times-circle critical';
-               break;
-           default: //unknown
-       }
-
-       return '<i class="fa fa-' + iconCls + '"></i> ' + value;
-
-    },
-
     get_kvm_osinfo: function(value) {
        var info = { base: 'Other' }; // default
        if (value) {
diff --git a/www/manager6/node/ZFS.js b/www/manager6/node/ZFS.js
index 0b63ccd7..3c83361f 100644
--- a/www/manager6/node/ZFS.js
+++ b/www/manager6/node/ZFS.js
@@ -19,24 +19,6 @@ Ext.define('PVE.node.CreateZFS', {
 
        me.isCreate = true;
 
-       var update_disklist = function() {
-           var grid = me.down('#disklist');
-           var disks = grid.getSelection();
-
-           var val = [];
-           disks.sort(function(a,b) {
-               var aorder = a.get('order') || 0;
-               var border = b.get('order') || 0;
-               return (aorder - border);
-           });
-
-           disks.forEach(function(disk) {
-               val.push(disk.get('devpath'));
-           });
-
-           me.down('field[name=devices]').setValue(val.join(','));
-       };
-
        Ext.apply(me, {
            url: '/nodes/' + me.nodename + '/disks/zfs',
            method: 'POST',
@@ -47,12 +29,6 @@ Ext.define('PVE.node.CreateZFS', {
                        return values;
                    },
                    column1: [
-                       {
-                           xtype: 'textfield',
-                           hidden: true,
-                           name: 'devices',
-                           allowBlank: false
-                       },
                        {
                            xtype: 'proxmoxtextfield',
                            name: 'name',
@@ -106,62 +82,11 @@ Ext.define('PVE.node.CreateZFS', {
                    ],
                    columnB: [
                        {
-                           xtype: 'grid',
+                           xtype: 'pmxMultiDiskSelector',
+                           name: 'devices',
+                           nodename: me.nodename,
                            height: 200,
                            emptyText: gettext('No Disks unused'),
-                           itemId: 'disklist',
-                           selModel: 'checkboxmodel',
-                           listeners: {
-                               selectionchange: update_disklist
-                           },
-                           store: {
-                               proxy: {
-                                   type: 'proxmox',
-                                   url: '/api2/json/nodes/' + me.nodename + 
'/disks/list?type=unused'
-                               }
-                           },
-                           columns: [
-                               {
-                                   text: gettext('Device'),
-                                   dataIndex: 'devpath',
-                                   flex: 2,
-                               },
-                               {
-                                   text: gettext('Model'),
-                                   dataIndex: 'model',
-                                   flex: 2,
-                               },
-                               {
-                                   text: gettext('Serial'),
-                                   dataIndex: 'serial',
-                                   flex: 2,
-                               },
-                               {
-                                   text: gettext('Size'),
-                                   dataIndex: 'size',
-                                   renderer: PVE.Utils.render_size,
-                                   flex: 1,
-                               },
-                               {
-                                   header: gettext('Order'),
-                                   xtype: 'widgetcolumn',
-                                   dataIndex: 'order',
-                                   sortable: true,
-                                   flex: 1,
-                                   widget: {
-                                       xtype: 'proxmoxintegerfield',
-                                       minValue: 1,
-                                       isFormField: false,
-                                       listeners: {
-                                           change: function(numberfield, 
value, old_value) {
-                                               var record = 
numberfield.getWidgetRecord();
-                                               record.set('order', value);
-                                               update_disklist(record);
-                                           }
-                                       }
-                                   }
-                               }
-                           ]
                        }
                    ]
                },
@@ -177,137 +102,6 @@ Ext.define('PVE.node.CreateZFS', {
        });
 
         me.callParent();
-       me.down('#disklist').getStore().load();
-    }
-});
-
-Ext.define('PVE.node.ZFSDevices', {
-    extend: 'Ext.tree.Panel',
-    xtype: 'pveZFSDevices',
-    stateful: true,
-    stateId: 'grid-node-zfsstatus',
-    columns: [
-       {
-           xtype: 'treecolumn',
-           text: gettext('Name'),
-           dataIndex: 'name',
-           flex: 1
-       },
-       {
-           text: gettext('Health'),
-           renderer: PVE.Utils.render_zfs_health,
-           dataIndex: 'state'
-       },
-       {
-           text: 'READ',
-           dataIndex: 'read'
-       },
-       {
-           text: 'WRITE',
-           dataIndex: 'write'
-       },
-       {
-           text: 'CKSUM',
-           dataIndex: 'cksum'
-       },
-       {
-           text: gettext('Message'),
-           dataIndex: 'msg'
-       }
-    ],
-
-    rootVisible: true,
-
-    reload: function() {
-       var me = this;
-       var sm = me.getSelectionModel();
-       Proxmox.Utils.API2Request({
-           url: "/nodes/" + me.nodename + "/disks/zfs/" + me.zpool,
-           waitMsgTarget: me,
-           method: 'GET',
-           failure: function(response, opts) {
-               Proxmox.Utils.setErrorMask(me, response.htmlStatus);
-           },
-           success: function(response, opts) {
-               sm.deselectAll();
-               me.setRootNode(response.result.data);
-               me.expandAll();
-           }
-       });
-    },
-
-    initComponent: function() {
-        var me = this;
-
-       if (!me.nodename) {
-           throw "no node name specified";
-       }
-
-       if (!me.zpool) {
-           throw "no zpool specified";
-       }
-
-       var sm = Ext.create('Ext.selection.TreeModel', {});
-
-       Ext.apply(me, {
-           selModel: sm,
-           fields: ['name', 'status',
-               {
-                   type: 'string',
-                   name: 'iconCls',
-                   calculate: function(data) {
-                       var txt = 'fa x-fa-tree fa-';
-                       if (data.leaf) {
-                           return txt + 'hdd-o';
-                       }
-                   }
-               }
-           ],
-           sorters: 'name'
-       });
-
-       me.callParent();
-
-       me.reload();
-    }
-});
-
-Ext.define('PVE.node.ZFSStatus', {
-    extend: 'Proxmox.grid.ObjectGrid',
-    xtype: 'pveZFSStatus',
-    layout: 'fit',
-    border: false,
-
-    initComponent: function() {
-        var me = this;
-
-       if (!me.nodename) {
-           throw "no node name specified";
-       }
-
-       if (!me.zpool) {
-           throw "no zpool specified";
-       }
-
-       me.url = "/api2/extjs/nodes/" + me.nodename + "/disks/zfs/" + me.zpool;
-
-       me.rows = {
-           scan: {
-               header: gettext('Scan')
-           },
-           status: {
-               header: gettext('Status')
-           },
-           action: {
-               header: gettext('Action')
-           },
-           errors: {
-               header: gettext('Errors')
-           }
-       };
-
-       me.callParent();
-       me.reload();
     }
 });
 
@@ -347,7 +141,7 @@ Ext.define('PVE.node.ZFSList', {
        },
        {
            header: gettext('Health'),
-           renderer: PVE.Utils.render_zfs_health,
+           renderer: Proxmox.Utils.render_zfs_health,
            dataIndex: 'health'
        },
        {
@@ -400,46 +194,9 @@ Ext.define('PVE.node.ZFSList', {
     show_detail: function(zpool) {
        var me = this;
 
-       var detailsgrid = Ext.create('PVE.node.ZFSStatus', {
-           layout: 'fit',
-           nodename: me.nodename,
-           flex: 0,
-           zpool: zpool
-       });
-
-       var devicetree = Ext.create('PVE.node.ZFSDevices', {
-           title: gettext('Devices'),
+       Ext.create('Proxmox.window.ZFSDetail', {
+           zpool: zpool,
            nodename: me.nodename,
-           flex: 1,
-           zpool: zpool
-       });
-
-
-       var win = Ext.create('Ext.window.Window', {
-           modal: true,
-           width: 800,
-           height: 400,
-           resizable: true,
-           layout: 'fit',
-           title: gettext('Status') + ': ' + zpool,
-           items:[{
-               xtype: 'panel',
-               region: 'center',
-               layout: {
-                   type: 'vbox',
-                   align: 'stretch'
-               },
-               items: [detailsgrid, devicetree],
-               tbar: [{
-                   text: gettext('Reload'),
-                   iconCls: 'fa fa-refresh',
-                   handler: function() {
-
-                       devicetree.reload();
-                       detailsgrid.reload();
-                   }
-               }]
-           }]
        }).show();
     },
 
-- 
2.20.1


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

Reply via email to