* [pve-devel] [PATCH manager v17 1/2] ui: qemu: change logic to use ViewModel instead of listener function @ 2024-04-22 10:27 Markus Frank 2024-04-22 10:27 ` [pve-devel] [PATCH manager v17 2/2] ui: qemu: add clipboard ComboBox as a advanced option in DisplayEdit Markus Frank 2024-04-22 13:10 ` [pve-devel] applied: [PATCH manager v17 1/2] ui: qemu: change logic to use ViewModel instead of listener function Dominik Csapak 0 siblings, 2 replies; 3+ messages in thread From: Markus Frank @ 2024-04-22 10:27 UTC (permalink / raw) To: pve-devel Signed-off-by: Markus Frank <m.frank@proxmox.com> Reviewed-by: Dominik Csapak <d.csapak@proxmox.com> Tested-by: Dominik Csapak <d.csapak@proxmox.com> --- v17: * moved regex to inline match as it is only used once. www/manager6/qemu/DisplayEdit.js | 56 +++++++++++++++++++------------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/www/manager6/qemu/DisplayEdit.js b/www/manager6/qemu/DisplayEdit.js index 9bb1763e..f2649c1c 100644 --- a/www/manager6/qemu/DisplayEdit.js +++ b/www/manager6/qemu/DisplayEdit.js @@ -11,6 +11,33 @@ Ext.define('PVE.qemu.DisplayInputPanel', { return { vga: ret }; }, + viewModel: { + data: { + type: '__default__', + clipboard: '__default__', + }, + formulas: { + matchNonGUIOption: function(get) { + return get('type').match(/^(serial\d|none)$/); + }, + memoryEmptyText: function(get) { + let val = get('type'); + if (val === "cirrus") { + return "4"; + } else if (val === "std" || val.match(/^qxl\d?$/) || val === "vmware") { + return "16"; + } else if (val.match(/^virtio/)) { + return "256"; + } else if (get('matchNonGUIOption')) { + return "N/A"; + } else { + console.debug("unexpected display type", val); + return Proxmox.Utils.defaultText; + } + }, + }, + }, + items: [{ name: 'type', xtype: 'proxmoxKVComboBox', @@ -27,29 +54,8 @@ Ext.define('PVE.qemu.DisplayInputPanel', { } return true; }, - listeners: { - change: function(cb, val) { - if (!val) { - return; - } - let memoryfield = this.up('panel').down('field[name=memory]'); - let disableMemoryField = false; - - if (val === "cirrus") { - memoryfield.setEmptyText("4"); - } else if (val === "std" || val.match(/^qxl\d?$/) || val === "vmware") { - memoryfield.setEmptyText("16"); - } else if (val.match(/^virtio/)) { - memoryfield.setEmptyText("256"); - } else if (val.match(/^(serial\d|none)$/)) { - memoryfield.setEmptyText("N/A"); - disableMemoryField = true; - } else { - console.debug("unexpected display type", val); - memoryfield.setEmptyText(Proxmox.Utils.defaultText); - } - memoryfield.setDisabled(disableMemoryField); - }, + bind: { + value: '{type}', }, }, { @@ -60,6 +66,10 @@ Ext.define('PVE.qemu.DisplayInputPanel', { maxValue: 512, step: 4, name: 'memory', + bind: { + emptyText: '{memoryEmptyText}', + disabled: '{matchNonGUIOption}', + }, }], }); -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
* [pve-devel] [PATCH manager v17 2/2] ui: qemu: add clipboard ComboBox as a advanced option in DisplayEdit 2024-04-22 10:27 [pve-devel] [PATCH manager v17 1/2] ui: qemu: change logic to use ViewModel instead of listener function Markus Frank @ 2024-04-22 10:27 ` Markus Frank 2024-04-22 13:10 ` [pve-devel] applied: [PATCH manager v17 1/2] ui: qemu: change logic to use ViewModel instead of listener function Dominik Csapak 1 sibling, 0 replies; 3+ messages in thread From: Markus Frank @ 2024-04-22 10:27 UTC (permalink / raw) To: pve-devel For SPICE and VNC, a different message is displayed. The backend code for the clipboard option can be found in the 'config: enable vnc clipboard parameter in vga_fmt'-commit in qemu-server. Signed-off-by: Markus Frank <m.frank@proxmox.com> --- v17: * added "value: '__default__'" to clipboard ComboBox so that reset does not clear this field. * "(SPICE)" has been removed from the default field, as it is likely to confuse the user. www/manager6/qemu/DisplayEdit.js | 41 ++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/www/manager6/qemu/DisplayEdit.js b/www/manager6/qemu/DisplayEdit.js index f2649c1c..7acc25d6 100644 --- a/www/manager6/qemu/DisplayEdit.js +++ b/www/manager6/qemu/DisplayEdit.js @@ -35,6 +35,9 @@ Ext.define('PVE.qemu.DisplayInputPanel', { return Proxmox.Utils.defaultText; } }, + isVNC: get => get('clipboard') === 'vnc', + hideDefaultHint: get => get('isVNC') || get('matchNonGUIOption'), + hideVNCHint: get => !get('isVNC') || get('matchNonGUIOption'), }, }, @@ -71,6 +74,44 @@ Ext.define('PVE.qemu.DisplayInputPanel', { disabled: '{matchNonGUIOption}', }, }], + + advancedItems: [ + { + xtype: 'proxmoxKVComboBox', + name: 'clipboard', + deleteEmpty: false, + value: '__default__', + fieldLabel: gettext('Clipboard'), + comboItems: [ + ['__default__', Proxmox.Utils.defaultText], + ['vnc', 'VNC'], + ], + bind: { + value: '{clipboard}', + disabled: '{matchNonGUIOption}', + }, + }, + { + xtype: 'displayfield', + name: 'vncHint', + userCls: 'pmx-hint', + value: gettext('You cannot use the default SPICE clipboard if the VNC Clipboard is selected.') + ' ' + + gettext('VNC Clipboard requires spice-tools installed in the Guest-VM.'), + bind: { + hidden: '{hideVNCHint}', + }, + }, + { + xtype: 'displayfield', + name: 'defaultHint', + userCls: 'pmx-hint', + value: gettext('This option depends on your display type.') + ' ' + + gettext('If the display type uses SPICE you are able to use the default SPICE Clipboard.'), + bind: { + hidden: '{hideDefaultHint}', + }, + }, + ], }); Ext.define('PVE.qemu.DisplayEdit', { -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
* [pve-devel] applied: [PATCH manager v17 1/2] ui: qemu: change logic to use ViewModel instead of listener function 2024-04-22 10:27 [pve-devel] [PATCH manager v17 1/2] ui: qemu: change logic to use ViewModel instead of listener function Markus Frank 2024-04-22 10:27 ` [pve-devel] [PATCH manager v17 2/2] ui: qemu: add clipboard ComboBox as a advanced option in DisplayEdit Markus Frank @ 2024-04-22 13:10 ` Dominik Csapak 1 sibling, 0 replies; 3+ messages in thread From: Dominik Csapak @ 2024-04-22 13:10 UTC (permalink / raw) To: Markus Frank, pve-devel applied both patches, thanks! _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-04-22 13:10 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2024-04-22 10:27 [pve-devel] [PATCH manager v17 1/2] ui: qemu: change logic to use ViewModel instead of listener function Markus Frank 2024-04-22 10:27 ` [pve-devel] [PATCH manager v17 2/2] ui: qemu: add clipboard ComboBox as a advanced option in DisplayEdit Markus Frank 2024-04-22 13:10 ` [pve-devel] applied: [PATCH manager v17 1/2] ui: qemu: change logic to use ViewModel instead of listener function Dominik Csapak
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox