[pve-devel] [PATCH] added renderer for hd strings in hardware overview

Dietmar Maurer dietmar at proxmox.com
Wed Aug 22 17:02:29 CEST 2012


@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?

> -----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





More information about the pve-devel mailing list