]>
git.proxmox.com Git - pve-manager.git/blob - www/manager/qemu/CDEdit.js
159002869748e06624ec95cfa0103bbc7bdeffa5
1 // fixme: howto avoid jslint type confusion?
2 /*jslint confusion: true */
3 Ext
.define('PVE.qemu.CDInputPanel', {
4 extend
: 'PVE.panel.InputPanel',
5 alias
: 'widget.PVE.qemu.CDInputPanel',
9 onGetValues: function(values
) {
12 var confid
= me
.confid
|| (values
.controller
+ values
.deviceid
);
14 me
.drive
.media
= 'cdrom';
15 if (values
.mediaType
=== 'iso') {
16 me
.drive
.file
= values
.cdimage
;
17 } else if (values
.mediaType
=== 'cdrom') {
18 me
.drive
.file
= 'cdrom';
20 me
.drive
.file
= 'none';
25 params
[confid
] = PVE
.Parser
.printQemuDrive(me
.drive
);
30 setVMConfig: function(vmconfig
) {
34 me
.bussel
.setVMConfig(vmconfig
, 'cdrom');
38 setDrive: function(drive
) {
42 if (drive
.file
=== 'cdrom') {
43 values
.mediaType
= 'cdrom';
44 } else if (drive
.file
=== 'none') {
45 values
.mediaType
= 'none';
47 values
.mediaType
= 'iso';
48 var match
= drive
.file
.match(/^([^:]+):/);
50 values
.cdstorage
= match
[1];
51 values
.cdimage
= drive
.file
;
60 setNodename: function(nodename
) {
63 me
.cdstoragesel
.setNodename(nodename
);
64 me
.cdfilesel
.setStorage(undefined, nodename
);
67 initComponent : function() {
75 me
.bussel
= Ext
.createWidget('PVE.form.ControllerSelector', {
78 items
.push(me
.bussel
);
85 boxLabel
: 'Use CD/DVD disc image file (iso)',
88 change: function(f
, value
) {
92 me
.down('field[name=cdstorage]').setDisabled(!value
);
93 me
.down('field[name=cdimage]').setDisabled(!value
);
94 me
.down('field[name=cdimage]').validate();
99 me
.cdfilesel
= Ext
.create('PVE.form.FileSelector', {
101 nodename
: me
.nodename
,
102 storageContent
: 'iso',
103 fieldLabel
: 'ISO Image',
108 me
.cdstoragesel
= Ext
.create('PVE.form.StorageSelector', {
110 nodename
: me
.nodename
,
111 fieldLabel
: gettext('Storage'),
113 storageContent
: 'iso',
115 autoSelect
: me
.insideWizard
,
117 change: function(f
, value
) {
118 me
.cdfilesel
.setStorage(value
);
123 items
.push(me
.cdstoragesel
);
124 items
.push(me
.cdfilesel
);
130 boxLabel
: 'Use physical CD/DVD Drive'
137 boxLabel
: 'Do not use any media'
140 if (me
.insideWizard
) {
150 Ext
.define('PVE.qemu.CDEdit', {
151 extend
: 'PVE.window.Edit',
153 initComponent : function() {
156 var nodename
= me
.pveSelNode
.data
.node
;
158 throw "no node name specified";
161 me
.create
= me
.confid
? false : true;
163 var ipanel
= Ext
.create('PVE.qemu.CDInputPanel', {
169 subject
: 'CD/DVD Drive',
176 success: function(response
, options
) {
177 ipanel
.setVMConfig(response
.result
.data
);
179 var value
= response
.result
.data
[me
.confid
];
180 var drive
= PVE
.Parser
.parseQemuDrive(me
.confid
, value
);
182 Ext
.Msg
.alert('Error', 'Unable to parse drive options');
186 ipanel
.setDrive(drive
);