]>
git.proxmox.com Git - pve-manager.git/blob - www/manager/qemu/Options.js
197d11a29de22372a1af001bbde5baa3f8a9db73
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";
20 var caps
= Ext
.state
.Manager
.get('GuiCap');
25 defaultValue
: me
.pveSelNode
.data
.name
,
26 header
: gettext('Name'),
27 editor
: caps
.vms
['VM.Config.Options'] ? {
28 xtype
: 'pveWindowEdit',
29 subject
: gettext('Name'),
35 fieldLabel
: gettext('Name'),
41 header
: gettext('Start at boot'),
43 renderer
: PVE
.Utils
.format_boolean
,
44 editor
: caps
.vms
['VM.Config.Options'] ? {
45 xtype
: 'pveWindowEdit',
46 subject
: gettext('Start at boot'),
52 deleteDefaultValue
: true,
53 fieldLabel
: gettext('Start at boot')
58 header
: gettext('Start/Shutdown order'),
60 renderer
: PVE
.Utils
.render_kvm_startup
,
61 editor
: caps
.vms
['VM.Config.Options'] && caps
.nodes
['Sys.Modify'] ?
62 'PVE.qemu.StartupEdit' : undefined
66 editor
: caps
.vms
['VM.Config.Options'] ? 'PVE.qemu.OSTypeEdit' : undefined,
67 renderer
: PVE
.Utils
.render_kvm_ostype
,
74 header
: gettext('Boot order'),
76 editor
: caps
.vms
['VM.Config.Disk'] ? 'PVE.qemu.BootOrderEdit' : undefined,
77 renderer: function(order
) {
80 var bootdisk
= me
.getObjectValue('bootdisk');
81 order
= order
|| 'cdn';
82 for (i
= 0; i
< order
.length
; i
++) {
83 var sel
= order
.substring(i
, i
+ 1);
89 text
+= "Disk '" + bootdisk
+ "'";
93 } else if (sel
=== 'n') {
95 } else if (sel
=== 'a') {
97 } else if (sel
=== 'd') {
107 header
: 'Use tablet for pointer',
109 renderer
: PVE
.Utils
.format_boolean
,
110 editor
: caps
.vms
['VM.Config.HWType'] ? {
111 xtype
: 'pveWindowEdit',
112 subject
: 'Use tablet for pointer',
114 xtype
: 'pvecheckbox',
119 deleteDefaultValue
: true,
120 fieldLabel
: gettext('Enabled')
125 header
: 'ACPI support',
127 renderer
: PVE
.Utils
.format_boolean
,
128 editor
: caps
.vms
['VM.Config.HWType'] ? {
129 xtype
: 'pveWindowEdit',
130 subject
: 'ACPI support',
132 xtype
: 'pvecheckbox',
137 deleteDefaultValue
: true,
138 fieldLabel
: gettext('Enabled')
143 header
: 'SCSI Controller Type',
144 editor
: caps
.vms
['VM.Config.Options'] ? 'PVE.qemu.ScsiHwEdit' : undefined,
145 renderer
: PVE
.Utils
.render_scsihw
,
149 header
: 'KVM hardware virtualization',
151 renderer
: PVE
.Utils
.format_boolean
,
152 editor
: caps
.vms
['VM.Config.HWType'] ? {
153 xtype
: 'pveWindowEdit',
154 subject
: 'KVM hardware virtualization',
156 xtype
: 'pvecheckbox',
161 deleteDefaultValue
: true,
162 fieldLabel
: gettext('Enabled')
168 defaultValue
: '1000',
169 editor
: caps
.vms
['VM.Config.CPU'] ? {
170 xtype
: 'pveWindowEdit',
171 subject
: 'CPU units',
173 xtype
: 'numberfield',
175 fieldLabel
: 'CPU units',
184 header
: 'Freeze CPU at startup',
186 renderer
: PVE
.Utils
.format_boolean
,
187 editor
: caps
.vms
['VM.PowerMgmt'] ? {
188 xtype
: 'pveWindowEdit',
189 subject
: 'Freeze CPU at startup',
191 xtype
: 'pvecheckbox',
195 deleteDefaultValue
: true,
197 fieldLabel
: 'Freeze CPU at startup'
202 header
: 'Use local time for RTC',
204 renderer
: PVE
.Utils
.format_boolean
,
205 editor
: caps
.vms
['VM.Config.Options'] ? {
206 xtype
: 'pveWindowEdit',
207 subject
: 'Use local time for RTC',
209 xtype
: 'pvecheckbox',
213 deleteDefaultValue
: true,
215 fieldLabel
: 'Use local time for RTC'
220 header
: 'RTC start date',
222 editor
: caps
.vms
['VM.Config.Options'] ? {
223 xtype
: 'pveWindowEdit',
224 subject
: 'RTC start date',
226 xtype
: 'pvetextfield',
230 fieldLabel
: 'RTC start date',
231 vtype
: 'QemuStartDate',
238 var baseurl
= 'nodes/' + nodename
+ '/qemu/' + vmid
+ '/config';
240 var reload = function() {
244 var run_editor = function() {
245 var sm
= me
.getSelectionModel();
246 var rec
= sm
.getSelection()[0];
251 var rowdef
= rows
[rec
.data
.key
];
252 if (!rowdef
.editor
) {
257 if (Ext
.isString(rowdef
.editor
)) {
258 win
= Ext
.create(rowdef
.editor
, {
259 pveSelNode
: me
.pveSelNode
,
260 confid
: rec
.data
.key
,
261 url
: '/api2/extjs/' + baseurl
264 var config
= Ext
.apply({
265 pveSelNode
: me
.pveSelNode
,
266 confid
: rec
.data
.key
,
267 url
: '/api2/extjs/' + baseurl
269 win
= Ext
.createWidget(rowdef
.editor
.xtype
, config
);
274 win
.on('destroy', reload
);
277 var edit_btn
= new Ext
.Button({
278 text
: gettext('Edit'),
283 var set_button_status = function() {
284 var sm
= me
.getSelectionModel();
285 var rec
= sm
.getSelection()[0];
291 var rowdef
= rows
[rec
.data
.key
];
292 edit_btn
.setDisabled(!rowdef
.editor
);
296 url
: "/api2/json/nodes/" + nodename
+ "/qemu/" + vmid
+ "/config",
301 itemdblclick
: run_editor
,
302 selectionchange
: set_button_status
308 me
.on('show', reload
);