]>
Commit | Line | Data |
---|---|---|
4f3e66d8 DC |
1 | Ext.define('PVE.qemu.DisplayInputPanel', { |
2 | extend: 'Proxmox.panel.InputPanel', | |
3 | xtype: 'pveDisplayInputPanel', | |
d2d16a78 | 4 | onlineHelp: 'qm_display', |
db050180 | 5 | |
4f3e66d8 DC |
6 | onGetValues: function(values) { |
7 | var ret = PVE.Parser.printPropertyString(values, 'type'); | |
8 | if (ret === '') { | |
9 | return { | |
f6710aac | 10 | 'delete': 'vga', |
4f3e66d8 DC |
11 | }; |
12 | } | |
13 | return { | |
f6710aac | 14 | vga: ret, |
4f3e66d8 DC |
15 | }; |
16 | }, | |
8a56fe1a TL |
17 | |
18 | items: [{ | |
4f3e66d8 | 19 | name: 'type', |
8a56fe1a TL |
20 | xtype: 'proxmoxKVComboBox', |
21 | value: '__default__', | |
4f3e66d8 | 22 | deleteEmpty: false, |
8a56fe1a TL |
23 | fieldLabel: gettext('Graphic card'), |
24 | comboItems: PVE.Utils.kvm_vga_driver_array(), | |
25 | validator: function() { | |
26 | var v = this.getValue(); | |
27 | var cfg = this.up('proxmoxWindowEdit').vmconfig || {}; | |
28 | ||
29 | if (v.match(/^serial\d+$/) && (!cfg[v] || cfg[v] !== 'socket')) { | |
30 | var fmt = gettext("Serial interface '{0}' is not correctly configured."); | |
31 | return Ext.String.format(fmt, v); | |
db050180 | 32 | } |
db050180 | 33 | return true; |
4f3e66d8 DC |
34 | }, |
35 | listeners: { | |
36 | change: function(cb, val) { | |
46d9a35c | 37 | let view = this.up('panel'); |
4f3e66d8 DC |
38 | if (!val) { |
39 | return; | |
40 | } | |
41 | var disable = false; | |
42 | var emptyText = Proxmox.Utils.defaultText; | |
43 | switch (val) { | |
44 | case "cirrus": | |
45 | emptyText = "4"; | |
46 | break; | |
47 | case "std": | |
48 | emptyText = "16"; | |
49 | break; | |
50 | case "qxl": | |
51 | case "qxl2": | |
52 | case "qxl3": | |
53 | case "qxl4": | |
54 | emptyText = "16"; | |
55 | break; | |
56 | case "vmware": | |
57 | emptyText = "16"; | |
58 | break; | |
89ae1bb1 | 59 | case "none": |
4f3e66d8 DC |
60 | case "serial0": |
61 | case "serial1": | |
62 | case "serial2": | |
63 | case "serial3": | |
64 | emptyText = 'N/A'; | |
65 | disable = true; | |
66 | break; | |
67 | case "virtio": | |
68 | emptyText = "256"; | |
69 | break; | |
70 | default: | |
71 | break; | |
72 | } | |
46d9a35c | 73 | let memoryfield = view.down('field[name=memory]'); |
4f3e66d8 DC |
74 | memoryfield.setEmptyText(emptyText); |
75 | memoryfield.setDisabled(disable); | |
f6710aac TL |
76 | }, |
77 | }, | |
78 | }, { | |
4f3e66d8 DC |
79 | xtype: 'proxmoxintegerfield', |
80 | emptyText: Proxmox.Utils.defaultText, | |
81 | fieldLabel: gettext('Memory') + ' (MiB)', | |
82 | minValue: 4, | |
83 | maxValue: 512, | |
84 | step: 4, | |
f6710aac TL |
85 | name: 'memory', |
86 | }], | |
4f3e66d8 DC |
87 | }); |
88 | ||
89 | Ext.define('PVE.qemu.DisplayEdit', { | |
90 | extend: 'Proxmox.window.Edit', | |
91 | ||
92 | vmconfig: undefined, | |
93 | ||
94 | subject: gettext('Display'), | |
95 | width: 350, | |
96 | ||
97 | items: [{ | |
f6710aac | 98 | xtype: 'pveDisplayInputPanel', |
8a56fe1a | 99 | }], |
db050180 | 100 | |
8058410f | 101 | initComponent: function() { |
8a56fe1a | 102 | var me = this; |
db050180 DM |
103 | |
104 | me.callParent(); | |
105 | ||
106 | me.load({ | |
8a56fe1a TL |
107 | success: function(response) { |
108 | me.vmconfig = response.result.data; | |
4f3e66d8 DC |
109 | var vga = me.vmconfig.vga || '__default__'; |
110 | me.setValues(PVE.Parser.parsePropertyString(vga, 'type')); | |
f6710aac | 111 | }, |
db050180 | 112 | }); |
f6710aac | 113 | }, |
db050180 | 114 | }); |