]>
Commit | Line | Data |
---|---|---|
a1ee14a2 DC |
1 | Ext.define('PVE.qemu.SystemInputPanel', { |
2 | extend: 'Proxmox.panel.InputPanel', | |
3 | xtype: 'pveQemuSystemPanel', | |
4 | ||
3a958fd5 | 5 | onlineHelp: 'qm_system_settings', |
a1ee14a2 DC |
6 | |
7 | viewModel: { | |
8 | data: { | |
9 | efi: false, | |
f6710aac | 10 | addefi: true, |
a1ee14a2 DC |
11 | }, |
12 | ||
13 | formulas: { | |
14 | efidisk: function(get) { | |
15 | return get('efi') && get('addefi'); | |
f6710aac TL |
16 | }, |
17 | }, | |
a1ee14a2 DC |
18 | }, |
19 | ||
20 | onGetValues: function(values) { | |
f6710aac TL |
21 | if (values.vga && values.vga.substr(0, 6) === 'serial') { |
22 | values['serial' + values.vga.substr(6, 1)] = 'socket'; | |
a1ee14a2 DC |
23 | } |
24 | ||
a1ee14a2 DC |
25 | delete values.hdimage; |
26 | delete values.hdstorage; | |
27 | delete values.diskformat; | |
28 | ||
fd12adfb | 29 | delete values.preEnrolledKeys; // efidisk |
78b3c3df | 30 | delete values.version; // tpmstate |
a1ee14a2 DC |
31 | |
32 | return values; | |
33 | }, | |
34 | ||
35 | controller: { | |
36 | xclass: 'Ext.app.ViewController', | |
37 | ||
38 | scsihwChange: function(field, value) { | |
39 | var me = this; | |
40 | if (me.getView().insideWizard) { | |
41 | me.getViewModel().set('current.scsihw', value); | |
42 | } | |
43 | }, | |
44 | ||
45 | biosChange: function(field, value) { | |
46 | var me = this; | |
47 | if (me.getView().insideWizard) { | |
48 | me.getViewModel().set('efi', value === 'ovmf'); | |
49 | } | |
50 | }, | |
51 | ||
52 | control: { | |
53 | 'pveScsiHwSelector': { | |
f6710aac | 54 | change: 'scsihwChange', |
a1ee14a2 DC |
55 | }, |
56 | 'pveQemuBiosSelector': { | |
f6710aac TL |
57 | change: 'biosChange', |
58 | }, | |
a9175b0b SR |
59 | '#': { |
60 | afterrender: 'setMachine', | |
61 | }, | |
62 | }, | |
63 | ||
64 | setMachine: function() { | |
65 | let me = this; | |
66 | let vm = this.getViewModel(); | |
67 | let ostype = vm.get('current.ostype'); | |
68 | if (ostype === 'win11') { | |
69 | me.lookup('machine').setValue('q35'); | |
70 | me.lookup('bios').setValue('ovmf'); | |
71 | me.lookup('addtpmbox').setValue(true); | |
72 | } | |
f6710aac | 73 | }, |
a1ee14a2 DC |
74 | }, |
75 | ||
76 | column1: [ | |
77 | { | |
78 | xtype: 'proxmoxKVComboBox', | |
79 | value: '__default__', | |
80 | deleteEmpty: false, | |
81 | fieldLabel: gettext('Graphic card'), | |
82 | name: 'vga', | |
56148f25 | 83 | comboItems: Object.entries(PVE.Utils.kvm_vga_drivers), |
a1ee14a2 DC |
84 | }, |
85 | { | |
b0a0b17d SR |
86 | xtype: 'proxmoxKVComboBox', |
87 | name: 'machine', | |
a9175b0b | 88 | reference: 'machine', |
a1ee14a2 | 89 | value: '__default__', |
b0a0b17d SR |
90 | fieldLabel: gettext('Machine'), |
91 | comboItems: [ | |
92 | ['__default__', PVE.Utils.render_qemu_machine('')], | |
93 | ['q35', 'q35'], | |
94 | ], | |
f6710aac | 95 | }, |
cef0b24c DC |
96 | { |
97 | xtype: 'displayfield', | |
98 | value: gettext('Firmware'), | |
99 | }, | |
a1ee14a2 DC |
100 | { |
101 | xtype: 'pveQemuBiosSelector', | |
102 | name: 'bios', | |
a9175b0b | 103 | reference: 'bios', |
a1ee14a2 | 104 | value: '__default__', |
f6710aac | 105 | fieldLabel: 'BIOS', |
a1ee14a2 DC |
106 | }, |
107 | { | |
108 | xtype: 'proxmoxcheckbox', | |
a1ee14a2 DC |
109 | bind: { |
110 | value: '{addefi}', | |
111 | hidden: '{!efi}', | |
f6710aac | 112 | disabled: '{!efi}', |
a1ee14a2 DC |
113 | }, |
114 | hidden: true, | |
c24fdb62 | 115 | submitValue: false, |
a1ee14a2 | 116 | disabled: true, |
f6710aac | 117 | fieldLabel: gettext('Add EFI Disk'), |
a1ee14a2 DC |
118 | }, |
119 | { | |
fd12adfb | 120 | xtype: 'pveEFIDiskInputPanel', |
a1ee14a2 | 121 | name: 'efidisk0', |
a1ee14a2 DC |
122 | storageContent: 'images', |
123 | bind: { | |
124 | nodename: '{nodename}', | |
125 | hidden: '{!efi}', | |
f6710aac | 126 | disabled: '{!efidisk}', |
a1ee14a2 DC |
127 | }, |
128 | autoSelect: false, | |
129 | disabled: true, | |
130 | hidden: true, | |
f6710aac | 131 | hideSize: true, |
fd12adfb | 132 | usesEFI: true, |
f6710aac | 133 | }, |
a1ee14a2 DC |
134 | ], |
135 | ||
b0a0b17d | 136 | column2: [ |
a1ee14a2 | 137 | { |
b0a0b17d SR |
138 | xtype: 'pveScsiHwSelector', |
139 | name: 'scsihw', | |
a1ee14a2 | 140 | value: '__default__', |
b0a0b17d SR |
141 | bind: { |
142 | value: '{current.scsihw}', | |
143 | }, | |
144 | fieldLabel: gettext('SCSI Controller'), | |
145 | }, | |
146 | { | |
147 | xtype: 'proxmoxcheckbox', | |
148 | name: 'agent', | |
149 | uncheckedValue: 0, | |
150 | defaultValue: 0, | |
151 | deleteDefaultValue: true, | |
152 | fieldLabel: gettext('Qemu Agent'), | |
f6710aac | 153 | }, |
cef0b24c DC |
154 | { |
155 | // fake for spacing | |
156 | xtype: 'displayfield', | |
157 | value: ' ', | |
158 | }, | |
78b3c3df TL |
159 | { |
160 | xtype: 'proxmoxcheckbox', | |
161 | reference: 'addtpmbox', | |
162 | bind: { | |
163 | value: '{addtpm}', | |
164 | }, | |
165 | submitValue: false, | |
166 | fieldLabel: gettext('Add TPM'), | |
167 | }, | |
168 | { | |
169 | xtype: 'pveTPMDiskInputPanel', | |
170 | name: 'tpmstate0', | |
171 | storageContent: 'images', | |
172 | bind: { | |
173 | nodename: '{nodename}', | |
174 | hidden: '{!addtpm}', | |
175 | disabled: '{!addtpm}', | |
176 | }, | |
177 | disabled: true, | |
178 | hidden: true, | |
179 | }, | |
f6710aac | 180 | ], |
a1ee14a2 DC |
181 | |
182 | }); |