]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/qemu/DisplayEdit.js
ui: cloudinit: match backend privilege checks
[pve-manager.git] / www / manager6 / qemu / DisplayEdit.js
CommitLineData
4f3e66d8
DC
1Ext.define('PVE.qemu.DisplayInputPanel', {
2 extend: 'Proxmox.panel.InputPanel',
3 xtype: 'pveDisplayInputPanel',
d2d16a78 4 onlineHelp: 'qm_display',
db050180 5
4f3e66d8 6 onGetValues: function(values) {
c8e171a8 7 let ret = PVE.Parser.printPropertyString(values, 'type');
4f3e66d8 8 if (ret === '') {
c8e171a8 9 return { 'delete': 'vga' };
4f3e66d8 10 }
c8e171a8 11 return { vga: ret };
4f3e66d8 12 },
8a56fe1a
TL
13
14 items: [{
4f3e66d8 15 name: 'type',
8a56fe1a
TL
16 xtype: 'proxmoxKVComboBox',
17 value: '__default__',
4f3e66d8 18 deleteEmpty: false,
8a56fe1a 19 fieldLabel: gettext('Graphic card'),
56148f25 20 comboItems: Object.entries(PVE.Utils.kvm_vga_drivers),
c8e171a8
TL
21 validator: function(v) {
22 let cfg = this.up('proxmoxWindowEdit').vmconfig || {};
8a56fe1a
TL
23
24 if (v.match(/^serial\d+$/) && (!cfg[v] || cfg[v] !== 'socket')) {
c8e171a8 25 let fmt = gettext("Serial interface '{0}' is not correctly configured.");
8a56fe1a 26 return Ext.String.format(fmt, v);
db050180 27 }
db050180 28 return true;
4f3e66d8
DC
29 },
30 listeners: {
31 change: function(cb, val) {
4f3e66d8
DC
32 if (!val) {
33 return;
34 }
c8e171a8
TL
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);
4f3e66d8 50 }
c8e171a8 51 memoryfield.setDisabled(disableMemoryField);
f6710aac
TL
52 },
53 },
c8e171a8
TL
54 },
55 {
4f3e66d8
DC
56 xtype: 'proxmoxintegerfield',
57 emptyText: Proxmox.Utils.defaultText,
58 fieldLabel: gettext('Memory') + ' (MiB)',
59 minValue: 4,
60 maxValue: 512,
61 step: 4,
f6710aac
TL
62 name: 'memory',
63 }],
4f3e66d8
DC
64});
65
66Ext.define('PVE.qemu.DisplayEdit', {
67 extend: 'Proxmox.window.Edit',
68
69 vmconfig: undefined,
70
71 subject: gettext('Display'),
72 width: 350,
73
74 items: [{
f6710aac 75 xtype: 'pveDisplayInputPanel',
8a56fe1a 76 }],
db050180 77
8058410f 78 initComponent: function() {
c8e171a8 79 let me = this;
db050180
DM
80
81 me.callParent();
82
83 me.load({
8a56fe1a
TL
84 success: function(response) {
85 me.vmconfig = response.result.data;
c8e171a8 86 let vga = me.vmconfig.vga || '__default__';
4f3e66d8 87 me.setValues(PVE.Parser.parsePropertyString(vga, 'type'));
f6710aac 88 },
db050180 89 });
f6710aac 90 },
db050180 91});