* moved static configuration to class definition * changed the width of the headers (because most were too small) * changed "show" event to "activate"
special attention for the data fields: changed the id from type integer to default type, because extjs cannot convert form integer for this field (if we do not do this, the whole ceph tab breaks) Signed-off-by: Dominik Csapak <d.csa...@proxmox.com> --- www/manager6/ceph/OSD.js | 246 +++++++++++++++++++++++------------------------ 1 file changed, 122 insertions(+), 124 deletions(-) diff --git a/www/manager6/ceph/OSD.js b/www/manager6/ceph/OSD.js index 31eeaca..9745a70 100644 --- a/www/manager6/ceph/OSD.js +++ b/www/manager6/ceph/OSD.js @@ -54,7 +54,16 @@ Ext.define('PVE.CephRemoveOsd', { isRemove: true, showProgress: true, - + method: 'DELETE', + items: [ + { + xtype: 'pvecheckbox', + name: 'cleanup', + checked: true, + labelWidth: 130, + fieldLabel: gettext('Remove Partitions') + } + ], initComponent : function() { /*jslint confusion: true */ var me = this; @@ -72,16 +81,6 @@ Ext.define('PVE.CephRemoveOsd', { Ext.applyIf(me, { url: "/nodes/" + me.nodename + "/ceph/osd/" + me.osdid, - method: 'DELETE', - items: [ - { - xtype: 'pvecheckbox', - name: 'cleanup', - checked: true, - labelWidth: 130, - fieldLabel: gettext('Remove Partitions') - } - ] }); me.callParent(); @@ -91,7 +90,115 @@ Ext.define('PVE.CephRemoveOsd', { Ext.define('PVE.node.CephOsdTree', { extend: 'Ext.tree.Panel', alias: ['widget.pveNodeCephOsdTree'], - + columns: [ + { + xtype: 'treecolumn', + text: 'Name', + dataIndex: 'name', + width: 150 + }, + { + text: 'Type', + dataIndex: 'type', + align: 'right', + width: 60 + }, + { + text: 'Status', + dataIndex: 'status', + align: 'right', + renderer: function(value, metaData, rec) { + if (!value) { + return value; + } + var data = rec.data; + return value + '/' + (data['in'] ? 'in' : 'out'); + }, + width: 80 + }, + { + text: 'weight', + dataIndex: 'crush_weight', + align: 'right', + renderer: function(value, metaData, rec) { + if (rec.data.type !== 'osd') { + return ''; + } + return value; + }, + width: 80 + }, + { + text: 'reweight', + dataIndex: 'reweight', + align: 'right', + renderer: function(value, metaData, rec) { + if (rec.data.type !== 'osd') { + return ''; + } + return value; + }, + width: 90 + }, + { + header: gettext('Used'), + columns: [ + { + text: '%', + dataIndex: 'percent_used', + align: 'right', + renderer: function(value, metaData, rec) { + if (rec.data.type !== 'osd') { + return ''; + } + return Ext.util.Format.number(value, '0.00'); + }, + width: 80 + }, + { + text: gettext('Total'), + dataIndex: 'total_space', + align: 'right', + renderer: function(value, metaData, rec) { + if (rec.data.type !== 'osd') { + return ''; + } + return PVE.Utils.render_size(value); + }, + width: 100 + } + ] + }, + { + header: gettext('Latency (ms)'), + columns: [ + { + text: 'Apply', + dataIndex: 'apply_latency_ms', + align: 'right', + renderer: function(value, metaData, rec) { + if (rec.data.type !== 'osd') { + return ''; + } + return value; + }, + width: 60 + }, + { + text: 'Commit', + dataIndex: 'commit_latency_ms', + align: 'right', + renderer: function(value, metaData, rec) { + if (rec.data.type !== 'osd') { + return ''; + } + return value; + }, + width: 60 + } + ] + } + ], initComponent: function() { /*jslint confusion: true */ var me = this; @@ -235,8 +342,7 @@ Ext.define('PVE.node.CephOsdTree', { Ext.apply(me, { tbar: [ reload_btn, start_btn, stop_btn, osd_out_btn, osd_in_btn, remove_btn ], rootVisible: false, - fields: ['name', 'type', 'status', 'host', 'in', - { type: 'integer', name: 'id' }, + fields: ['name', 'type', 'status', 'host', 'in', 'id' , { type: 'number', name: 'reweight' }, { type: 'number', name: 'percent_used' }, { type: 'integer', name: 'bytes_used' }, @@ -246,117 +352,9 @@ Ext.define('PVE.node.CephOsdTree', { { type: 'number', name: 'crush_weight' }], stateful: false, selModel: sm, - columns: [ - { - xtype: 'treecolumn', - text: 'Name', - dataIndex: 'name', - width: 150 - }, - { - text: 'Type', - dataIndex: 'type', - align: 'right', - width: 60 - }, - { - text: 'Status', - dataIndex: 'status', - align: 'right', - renderer: function(value, metaData, rec) { - if (!value) { - return value; - } - var data = rec.data; - return value + '/' + (data['in'] ? 'in' : 'out'); - }, - width: 60 - }, - { - text: 'weight', - dataIndex: 'crush_weight', - align: 'right', - renderer: function(value, metaData, rec) { - if (rec.data.type !== 'osd') { - return ''; - } - return value; - }, - width: 60 - }, - { - text: 'reweight', - dataIndex: 'reweight', - align: 'right', - renderer: function(value, metaData, rec) { - if (rec.data.type !== 'osd') { - return ''; - } - return value; - }, - width: 60 - }, - { - header: gettext('Used'), - columns: [ - { - text: '%', - dataIndex: 'percent_used', - align: 'right', - renderer: function(value, metaData, rec) { - if (rec.data.type !== 'osd') { - return ''; - } - return Ext.util.Format.number(value, '0.00'); - }, - width: 80 - }, - { - text: gettext('Total'), - dataIndex: 'total_space', - align: 'right', - renderer: function(value, metaData, rec) { - if (rec.data.type !== 'osd') { - return ''; - } - return PVE.Utils.render_size(value); - }, - width: 100 - } - ] - }, - { - header: gettext('Latency (ms)'), - columns: [ - { - text: 'Apply', - dataIndex: 'apply_latency_ms', - align: 'right', - renderer: function(value, metaData, rec) { - if (rec.data.type !== 'osd') { - return ''; - } - return value; - }, - width: 60 - }, - { - text: 'Commit', - dataIndex: 'commit_latency_ms', - align: 'right', - renderer: function(value, metaData, rec) { - if (rec.data.type !== 'osd') { - return ''; - } - return value; - }, - width: 60 - } - ] - } - ], + listeners: { - show: function() { + activate: function() { reload(); } } -- 2.1.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel