[pve-devel] [PATCH manager 2/4] spice: Add enhancements form component

Stefan Reiter s.reiter at proxmox.com
Mon Sep 16 14:44:23 CEST 2019


Tried my hand at a proper code review, I like the patches in general.

On 9/13/19 3:16 PM, Aaron Lauterer wrote:
> Signed-off-by: Aaron Lauterer <a.lauterer at proxmox.com>
> ---
>   www/manager6/Makefile                         |  1 +
>   www/manager6/form/SpiceEnhancementSelector.js | 66 +++++++++++++++++++
>   2 files changed, 67 insertions(+)
>   create mode 100644 www/manager6/form/SpiceEnhancementSelector.js
> 
> diff --git a/www/manager6/Makefile b/www/manager6/Makefile
> index 82e25c79..aa460c3b 100644
> --- a/www/manager6/Makefile
> +++ b/www/manager6/Makefile
> @@ -66,6 +66,7 @@ JSSRC= 				                 	\
>   	form/CalendarEvent.js				\
>   	form/CephPoolSelector.js			\
>   	form/PermPathSelector.js			\
> +	form/SpiceEnhancementSelector.js		\
>   	dc/Tasks.js					\
>   	dc/Log.js					\
>   	panel/StatusPanel.js				\
> diff --git a/www/manager6/form/SpiceEnhancementSelector.js b/www/manager6/form/SpiceEnhancementSelector.js
> new file mode 100644
> index 00000000..5457c8d5
> --- /dev/null
> +++ b/www/manager6/form/SpiceEnhancementSelector.js
> @@ -0,0 +1,66 @@
> +Ext.define('PVE.form.SpiceEnhancementSelector', {
> +    extend: 'Proxmox.panel.InputPanel',
> +    alias: 'widget.pveSpiceEnhancementSelector',
> +
> +    initComponent: function() {
> +	var me = this;
> +	me.items= [
> +	    {
> +		xtype: 'proxmoxcheckbox',
> +		itemId: 'foldersharing',
> +		name: 'foldersharing',
> +		submitValue: false,
> +		fieldLabel: gettext('Folder sharing'),
> +		uncheckedValue: 0,
> +	    },
> +	    {
> +		xtype: 'proxmoxKVComboBox',
> +		itemId: 'videostreaming',
> +		name: 'videostreaming',
> +		submitValue: false,
> +		value: 'off',
> +		fieldLabel: gettext('Video streaming'),
> +		comboItems: [
> +		    ['off', 'off'],
> +		    ['all', 'all'],
> +		    ['filter', 'filter'],
> +		],
> +	    },
> +	];

Why not just set the items array on the object directly? Then you 
wouldn't have to override initComponent.

> +	me.callParent();
> +    },
> +
> +    // handle submitted values manually to work in the VM create wizard as well.
> +    // without submitValue = false the fields would be added to the config
> +    onGetValues: function() {
> +	var me = this;
> +
> +	if (me.disabled) {
> +	    return

Missing ;

> +	}
> +
> +	var values = {};
> +	var foldersharing = me.down('field[name=foldersharing]').getValue();
> +	var videostreaming= me.down('field[name=videostreaming]').getValue();

Missing space before =

> +
> +	if (videostreaming !== "off") {
> +	    values.videostreaming = videostreaming;
> +	}
> +	if (foldersharing) {
> +	    values.foldersharing = 1;
> +	}
> +	if (Ext.Object.isEmpty(values)) {
> +	    return { 'delete': 'spice_enhancements' };
> +	}
> +	var enhancements = PVE.Parser.printPropertyString(values);
> +	return { spice_enhancements: enhancements };
> +    },
> +
> +    setValues: function(values) {
> +	var enhancements = values.spice_enhancements || '';
> +	if (enhancements) {
> +	    var res = PVE.Parser.parsePropertyString(enhancements);

Same as in 3/4, foldersharing would need to be converted to a true 
boolean here (from potentially "on", "yes", ...).

> +	    this.callParent([res]);
> +	}
> +    },
> +});
> 




More information about the pve-devel mailing list