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