1 /*jslint confusion: true */
2 Ext
.define('PVE.qemu.Options', {
3 extend
: 'PVE.grid.ObjectGrid',
4 alias
: ['widget.PVE.qemu.Options'],
6 initComponent : function() {
10 var nodename
= me
.pveSelNode
.data
.node
;
12 throw "no node name specified";
15 var vmid
= me
.pveSelNode
.data
.vmid
;
17 throw "no VM ID specified";
23 defaultValue
: me
.pveSelNode
.data
.name
,
26 xtype
: 'pveWindowEdit',
32 fieldLabel
: 'VM name',
38 header
: 'Start at boot',
40 renderer
: PVE
.Utils
.format_boolean_with_default
,
42 xtype
: 'pveWindowEdit',
43 title
: 'Start at boot',
45 xtype
: 'booleanfield',
48 fieldLabel
: 'Start at boot'
54 editor
: 'PVE.qemu.OSTypeEdit',
55 renderer
: PVE
.Utils
.render_kvm_ostype
,
64 editor
: 'PVE.qemu.BootOrderEdit',
65 renderer: function(order
) {
68 var bootdisk
= me
.getObjectValue('bootdisk');
69 order
= order
|| 'cad';
70 for (i
= 0; i
< order
.length
; i
++) {
71 var sel
= order
.substring(i
, i
+ 1);
77 text
+= "Disk '" + bootdisk
+ "'";
81 } else if (sel
=== 'n') {
83 } else if (sel
=== 'a') {
85 } else if (sel
=== 'd') {
95 header
: 'ACPI support',
97 renderer
: PVE
.Utils
.format_boolean
,
99 xtype
: 'pveWindowEdit',
100 title
: 'ACPI support',
102 xtype
: 'pvecheckbox',
107 deleteDefaultValue
: true,
113 header
: 'KVM hardware virtualization',
115 renderer
: PVE
.Utils
.format_boolean
,
117 xtype
: 'pveWindowEdit',
118 title
: 'KVM hardware virtualization',
120 xtype
: 'pvecheckbox',
125 deleteDefaultValue
: true,
131 header
: 'Freeze CPU at startup',
133 renderer
: PVE
.Utils
.format_boolean
,
135 xtype
: 'pveWindowEdit',
136 title
: 'Freeze CPU at startup',
138 xtype
: 'pvecheckbox',
142 deleteDefaultValue
: true,
144 fieldLabel
: 'Freeze CPU at startup'
149 header
: 'Use local time for RTC',
151 renderer
: PVE
.Utils
.format_boolean
,
153 xtype
: 'pveWindowEdit',
154 title
: 'Use local time for RTC',
156 xtype
: 'pvecheckbox',
160 deleteDefaultValue
: true,
162 fieldLabel
: 'Use local time for RTC'
168 header
: 'RTC start date',
171 xtype
: 'pveWindowEdit',
172 title
: 'RTC start date',
174 xtype
: 'pvetextfield',
178 fieldLabel
: 'RTC start date',
179 vtype
: 'QemuStartDate',
186 var baseurl
= 'nodes/' + nodename
+ '/qemu/' + vmid
+ '/config';
188 var reload = function() {
192 var run_editor = function() {
193 var sm
= me
.getSelectionModel();
194 var rec
= sm
.getSelection()[0];
199 var rowdef
= rows
[rec
.data
.key
];
200 if (!rowdef
.editor
) {
205 if (Ext
.isString(rowdef
.editor
)) {
206 win
= Ext
.create(rowdef
.editor
, {
207 pveSelNode
: me
.pveSelNode
,
208 confid
: rec
.data
.key
,
209 url
: '/api2/extjs/' + baseurl
212 var config
= Ext
.apply({
213 pveSelNode
: me
.pveSelNode
,
214 confid
: rec
.data
.key
,
215 url
: '/api2/extjs/' + baseurl
217 win
= Ext
.createWidget(rowdef
.editor
.xtype
, config
);
222 win
.on('destroy', reload
);
225 var edit_btn
= new Ext
.Button({
231 var set_button_status = function() {
232 var sm
= me
.getSelectionModel();
233 var rec
= sm
.getSelection()[0];
239 var rowdef
= rows
[rec
.data
.key
];
240 edit_btn
.setDisabled(!rowdef
.editor
);
244 url
: "/api2/json/nodes/" + nodename
+ "/qemu/" + vmid
+ "/config",
249 itemdblclick
: run_editor
,
250 selectionchange
: set_button_status
256 me
.on('show', reload
);