[pve-devel] [PATCH v3 manager 2/3] ui: add spice enhancements form component
Thomas Lamprecht
t.lamprecht at proxmox.com
Fri Oct 4 16:22:25 CEST 2019
On 10/4/19 12:09 PM, Aaron Lauterer wrote:
> Signed-off-by: Aaron Lauterer <a.lauterer at proxmox.com>
> ---
> www/manager6/Makefile | 1 +
> www/manager6/form/SpiceEnhancementSelector.js | 60 +++++++++++++++++++
> 2 files changed, 61 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..7e98c044
> --- /dev/null
> +++ b/www/manager6/form/SpiceEnhancementSelector.js
> @@ -0,0 +1,60 @@
> +Ext.define('PVE.form.SpiceEnhancementSelector', {
> + extend: 'Proxmox.panel.InputPanel',
> + alias: 'widget.pveSpiceEnhancementSelector',
> + items: [
> + {
> + xtype: 'proxmoxcheckbox',
> + itemId: 'foldersharing',
> + name: 'foldersharing',
> + fieldLabel: gettext('Folder sharing'),
> + uncheckedValue: 0,
> + },
> + {
> + xtype: 'proxmoxKVComboBox',
> + itemId: 'videostreaming',
> + name: 'videostreaming',
> + value: 'off',
> + fieldLabel: gettext('Video streaming'),
> + comboItems: [
> + ['off', 'off'],
> + ['all', 'all'],
> + ['filter', 'filter'],
> + ],
> + },
> + {
> + xtype: 'displayfield',
> + itemId: 'spicehint',
> + userCls: 'pve-hint',
> + value: gettext('To use these features set the display to SPICE in the hardware settings of the VM.'),
> + hidden: true
> + }
> + ],
> +
> + onGetValues: function(values) {
> + var ret = {};
> +
> + if (values.videostreaming !== "off") {
> + ret.videostreaming = values.videostreaming;
> + }
> + if (values.foldersharing) {
> + ret.foldersharing = 1;
> + }
> + if (Ext.Object.isEmpty(ret)) {
> + return { 'delete': 'spice_enhancements' };
> + }
> + var enhancements = PVE.Parser.printPropertyString(ret);
> + return { spice_enhancements: enhancements };
> + },
> +
> + setValues: function(values) {
> + var vga = PVE.Parser.parsePropertyString(values.vga, 'type');
above doesn't work if no vga is set (i.e., default is used)...
it throws an exception and thus the rest of the setValues is not
done, leading to buggy results over all - not only a wrong #spicehint
actually I'd change "PVE.Parser.parsePropertyString" to just return empty
objects
> + if (vga.type !== "qxl") {
> + this.down('#spicehint').setVisible(true);
> + }
> + if (values.spice_enhancements) {
> + var enhancements = PVE.Parser.parsePropertyString(values.spice_enhancements);
> + enhancements['foldersharing'] = PVE.Parser.parseBoolean(enhancements['foldersharing'], 0);
> + this.callParent([enhancements]);
> + }
> + },
> +});
>
More information about the pve-devel
mailing list