[pve-devel] [PATCH manager v3 5/6] added clipboard checkbox & combobox to DisplayEdit
Markus Frank
m.frank at proxmox.com
Fri Oct 28 14:33:21 CEST 2022
If display is set to spice the checkbox gets replaced by a combobox to
show the available clipboard options.
Signed-off-by: Markus Frank <m.frank at proxmox.com>
---
www/manager6/qemu/DisplayEdit.js | 62 +++++++++++++++++++++++++++++++-
1 file changed, 61 insertions(+), 1 deletion(-)
diff --git a/www/manager6/qemu/DisplayEdit.js b/www/manager6/qemu/DisplayEdit.js
index 9bb1763e..2cef5ad2 100644
--- a/www/manager6/qemu/DisplayEdit.js
+++ b/www/manager6/qemu/DisplayEdit.js
@@ -33,22 +33,54 @@ Ext.define('PVE.qemu.DisplayInputPanel', {
return;
}
let memoryfield = this.up('panel').down('field[name=memory]');
+ let clipboardBox = this.up('panel').down('field[itemId=clipboardBox]');
+ let clipboardDrop = this.up('panel').down('field[itemId=clipboardDrop]');
+ let vdagentHint = this.up('panel').down('field[name=vdagentHint]');
let disableMemoryField = false;
+ let spice = false;
+ let showClipboardAndHint = true;
if (val === "cirrus") {
memoryfield.setEmptyText("4");
- } else if (val === "std" || val.match(/^qxl\d?$/) || val === "vmware") {
+ } else if (val === "std" || val === "vmware") {
memoryfield.setEmptyText("16");
+ } else if (val.match(/^qxl\d?$/)) {
+ memoryfield.setEmptyText("16");
+ spice = true;
} else if (val.match(/^virtio/)) {
memoryfield.setEmptyText("256");
+ spice = true;
} else if (val.match(/^(serial\d|none)$/)) {
memoryfield.setEmptyText("N/A");
disableMemoryField = true;
+ showClipboardAndHint = false;
} else {
console.debug("unexpected display type", val);
memoryfield.setEmptyText(Proxmox.Utils.defaultText);
}
memoryfield.setDisabled(disableMemoryField);
+ vdagentHint.setVisible(showClipboardAndHint);
+ if (showClipboardAndHint) {
+ // switch from Checkbox to ComboBox and vice versa
+ clipboardBox.setDisabled(spice);
+ clipboardDrop.setDisabled(!spice);
+ clipboardBox.setVisible(!spice);
+ clipboardDrop.setVisible(spice);
+ // reset value when changing to spice,
+ // so that you have to actively change to noVNC Clipboard
+ if (spice) {
+ clipboardDrop.setValue('__default__');
+ }
+ } else {
+ // reset to default
+ clipboardBox.setValue(false);
+ clipboardDrop.setValue('__default__');
+ // show only the disabled Checkbox
+ clipboardBox.setDisabled(true);
+ clipboardDrop.setDisabled(true);
+ clipboardBox.setVisible(true);
+ clipboardDrop.setVisible(false);
+ }
},
},
},
@@ -60,6 +92,34 @@ Ext.define('PVE.qemu.DisplayInputPanel', {
maxValue: 512,
step: 4,
name: 'memory',
+ },
+ {
+ xtype: 'proxmoxcheckbox',
+ fieldLabel: gettext('noVNC Clipboard'),
+ name: 'clipboard',
+ itemId: 'clipboardBox',
+ },
+ {
+ name: 'clipboard',
+ itemId: 'clipboardDrop',
+ xtype: 'proxmoxKVComboBox',
+ value: '__default__',
+ deleteEmpty: false,
+ fieldLabel: gettext('Clipboard'),
+ comboItems: [
+ ['__default__', 'SPICE-Clipboard'],
+ ['1', 'noVNC-Clipboard'],
+ ],
+ disabled: true,
+ hidden: true,
+ },
+ {
+ itemId: 'vdagentHint',
+ name: 'vdagentHint',
+ xtype: 'displayfield',
+ userCls: 'pmx-hint',
+ value: 'Clipboard for noVNC requires spice-tools installed and ' +
+ 'enabled in the Guest-VM.',
}],
});
--
2.30.2
More information about the pve-devel
mailing list