]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/qemu/DisplayEdit.js
update shipped appliance info index
[pve-manager.git] / www / manager6 / qemu / DisplayEdit.js
1 Ext.define('PVE.qemu.DisplayInputPanel', {
2 extend: 'Proxmox.panel.InputPanel',
3 xtype: 'pveDisplayInputPanel',
4 onlineHelp: 'qm_display',
5
6 onGetValues: function(values) {
7 let ret = PVE.Parser.printPropertyString(values, 'type');
8 if (ret === '') {
9 return { 'delete': 'vga' };
10 }
11 return { vga: ret };
12 },
13
14 items: [{
15 name: 'type',
16 xtype: 'proxmoxKVComboBox',
17 value: '__default__',
18 deleteEmpty: false,
19 fieldLabel: gettext('Graphic card'),
20 comboItems: Object.entries(PVE.Utils.kvm_vga_drivers),
21 validator: function(v) {
22 let cfg = this.up('proxmoxWindowEdit').vmconfig || {};
23
24 if (v.match(/^serial\d+$/) && (!cfg[v] || cfg[v] !== 'socket')) {
25 let fmt = gettext("Serial interface '{0}' is not correctly configured.");
26 return Ext.String.format(fmt, v);
27 }
28 return true;
29 },
30 listeners: {
31 change: function(cb, val) {
32 if (!val) {
33 return;
34 }
35 let memoryfield = this.up('panel').down('field[name=memory]');
36 let disableMemoryField = false;
37
38 if (val === "cirrus") {
39 memoryfield.setEmptyText("4");
40 } else if (val === "std" || val.match(/^qxl\d?$/) || val === "vmware") {
41 memoryfield.setEmptyText("16");
42 } else if (val.match(/^virtio/)) {
43 memoryfield.setEmptyText("256");
44 } else if (val.match(/^(serial\d|none)$/)) {
45 memoryfield.setEmptyText("N/A");
46 disableMemoryField = true;
47 } else {
48 console.debug("unexpected display type", val);
49 memoryfield.setEmptyText(Proxmox.Utils.defaultText);
50 }
51 memoryfield.setDisabled(disableMemoryField);
52 },
53 },
54 },
55 {
56 xtype: 'proxmoxintegerfield',
57 emptyText: Proxmox.Utils.defaultText,
58 fieldLabel: gettext('Memory') + ' (MiB)',
59 minValue: 4,
60 maxValue: 512,
61 step: 4,
62 name: 'memory',
63 }],
64 });
65
66 Ext.define('PVE.qemu.DisplayEdit', {
67 extend: 'Proxmox.window.Edit',
68
69 vmconfig: undefined,
70
71 subject: gettext('Display'),
72 width: 350,
73
74 items: [{
75 xtype: 'pveDisplayInputPanel',
76 }],
77
78 initComponent: function() {
79 let me = this;
80
81 me.callParent();
82
83 me.load({
84 success: function(response) {
85 me.vmconfig = response.result.data;
86 let vga = me.vmconfig.vga || '__default__';
87 me.setValues(PVE.Parser.parsePropertyString(vga, 'type'));
88 },
89 });
90 },
91 });