[pve-devel] [PATCH] added renderer for hd strings in hardware overview
Stefan Priebe
s.priebe at profihost.ag
Thu Aug 23 22:51:21 CEST 2012
Hello Alexandre,
Am 22.08.2012 17:02, schrieb Dietmar Maurer:
> @alexandre: or can we add that inside QemuServer.pm - we also use such code
> for the new 'size' parameter, so maybe we can reuse that?
what's your opinion?
Stefan
>> -----Original Message-----
>> From: pve-devel-bounces at pve.proxmox.com [mailto:pve-devel-
>> bounces at pve.proxmox.com] On Behalf Of tgrodzinski
>> Sent: Mittwoch, 22. August 2012 16:10
>> To: pve-devel at pve.proxmox.com
>> Subject: [pve-devel] [PATCH] added renderer for hd strings in hardware
>> overview
>>
>>
>> Signed-off-by: tgrodzinski <t.grodzinski at profihost.ag>
>> ---
>> www/manager/qemu/HardwareView.js | 108 +++++++++++++++++++++++--
>> -------------
>> 1 file changed, 67 insertions(+), 41 deletions(-)
>>
>> diff --git a/www/manager/qemu/HardwareView.js
>> b/www/manager/qemu/HardwareView.js
>> index 4d27b84..8de6038 100644
>> --- a/www/manager/qemu/HardwareView.js
>> +++ b/www/manager/qemu/HardwareView.js
>> @@ -94,56 +94,82 @@ Ext.define('PVE.qemu.HardwareView', {
>> }
>> };
>>
>> + var renderer_hd = function (value) {
>> + if (typeof value === 'string') {
>> + var units = ['', 'K', 'M', 'G', 'T'];
>> + var parts = value.split( ',' );
>> + var formattedValue = '';
>> + for (i = 0; i < parts.length; i++) {
>> + var bpsMatch = parts[i].match(
>> /^bps_..=(\d+)/ );
>> + if (bpsMatch) {
>> + var bps = bpsMatch[1];
>> + var pow = Math.floor( Math.log( bps )
>> / Math.log( 1024 ) );
>> + pow = Math.min( pow, units.length - 1
>> );
>> + var bpsNew = Math.round( bps /
>> Math.pow( 1024, pow ) * 100 ) / 100;
>> + formattedValue += parts[i].replace(
>> bps, bpsNew + units[pow] );
>> + } else {
>> + formattedValue += parts[i];
>> + }
>> + if (i != parts.length - 1) formattedValue += ', ';
>> + }
>> + return formattedValue;
>> + }
>> + return value;
>> + };
>> +
>> for (i = 0; i < 4; i++) {
>> - confid = "ide" + i;
>> - rows[confid] = {
>> - group: 1,
>> - tdCls: 'pve-itype-icon-storage',
>> - editor: 'PVE.qemu.HDEdit',
>> - never_delete: caps.vms['VM.Config.Disk'] ? false : true,
>> - header: gettext('Hard Disk') + ' (' + confid +')',
>> - cdheader: gettext('CD/DVD Drive') + ' (' + confid +')'
>> - };
>> + confid = "ide" + i;
>> + rows[confid] = {
>> + group: 1,
>> + tdCls: 'pve-itype-icon-storage',
>> + editor: 'PVE.qemu.HDEdit',
>> + never_delete: caps.vms['VM.Config.Disk'] ? false :
>> true,
>> + header: gettext('Hard Disk') + ' (' + confid +')',
>> + cdheader: gettext('CD/DVD Drive') + ' (' + confid +')',
>> + renderer: renderer_hd
>> + };
>> }
>> for (i = 0; i < 16; i++) {
>> - confid = "scsi" + i;
>> - rows[confid] = {
>> - group: 1,
>> - tdCls: 'pve-itype-icon-storage',
>> - editor: 'PVE.qemu.HDEdit',
>> - never_delete: caps.vms['VM.Config.Disk'] ? false : true,
>> - header: gettext('Hard Disk') + ' (' + confid +')',
>> - cdheader: gettext('CD/DVD Drive') + ' (' + confid +')'
>> - };
>> + confid = "scsi" + i;
>> + rows[confid] = {
>> + group: 1,
>> + tdCls: 'pve-itype-icon-storage',
>> + editor: 'PVE.qemu.HDEdit',
>> + never_delete: caps.vms['VM.Config.Disk'] ? false :
>> true,
>> + header: gettext('Hard Disk') + ' (' + confid +')',
>> + cdheader: gettext('CD/DVD Drive') + ' (' + confid +')',
>> + renderer: renderer_hd
>> + };
>> }
>> for (i = 0; i < 16; i++) {
>> - confid = "virtio" + i;
>> - rows[confid] = {
>> - group: 1,
>> - tdCls: 'pve-itype-icon-storage',
>> - editor: 'PVE.qemu.HDEdit',
>> - never_delete: caps.vms['VM.Config.Disk'] ? false : true,
>> - header: gettext('Hard Disk') + ' (' + confid +')',
>> - cdheader: gettext('CD/DVD Drive') + ' (' + confid +')'
>> - };
>> + confid = "virtio" + i;
>> + rows[confid] = {
>> + group: 1,
>> + tdCls: 'pve-itype-icon-storage',
>> + editor: 'PVE.qemu.HDEdit',
>> + never_delete: caps.vms['VM.Config.Disk'] ? false :
>> true,
>> + header: gettext('Hard Disk') + ' (' + confid +')',
>> + cdheader: gettext('CD/DVD Drive') + ' (' + confid +')',
>> + renderer: renderer_hd
>> + };
>> }
>> for (i = 0; i < 32; i++) {
>> - confid = "net" + i;
>> - rows[confid] = {
>> - group: 2,
>> - tdCls: 'pve-itype-icon-network',
>> - editor: caps.vms['VM.Config.Network'] ?
>> 'PVE.qemu.NetworkEdit' : undefined,
>> - never_delete: caps.vms['VM.Config.Network'] ? false : true,
>> - header: gettext('Network Device') + ' (' + confid +')'
>> - };
>> + confid = "net" + i;
>> + rows[confid] = {
>> + group: 2,
>> + tdCls: 'pve-itype-icon-network',
>> + editor: caps.vms['VM.Config.Network'] ?
>> 'PVE.qemu.NetworkEdit' : undefined,
>> + never_delete: caps.vms['VM.Config.Network'] ? false :
>> true,
>> + header: gettext('Network Device') + ' (' + confid +')'
>> + };
>> }
>> for (i = 0; i < 8; i++) {
>> - rows["unused" + i] = {
>> - group: 3,
>> - tdCls: 'pve-itype-icon-storage',
>> - editor: caps.vms['VM.Config.Disk'] ? 'PVE.qemu.HDEdit' :
>> undefined,
>> - header: gettext('Unused Disk') + ' ' + i
>> - };
>> + rows["unused" + i] = {
>> + group: 3,
>> + tdCls: 'pve-itype-icon-storage',
>> + editor: caps.vms['VM.Config.Disk'] ?
>> 'PVE.qemu.HDEdit' : undefined,
>> + header: gettext('Unused Disk') + ' ' + i
>> + };
>> }
>>
>> var sorterFn = function(rec1, rec2) {
>> --
>> 1.7.9.5
>>
>> _______________________________________________
>> pve-devel mailing list
>> pve-devel at pve.proxmox.com
>> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
More information about the pve-devel
mailing list