]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/qemu/CDEdit.js
1 Ext
.define('PVE.qemu.CDInputPanel', {
2 extend
: 'Proxmox.panel.InputPanel',
3 alias
: 'widget.pveQemuCDInputPanel',
7 onGetValues: function(values
) {
10 var confid
= me
.confid
|| values
.controller
+ values
.deviceid
;
12 me
.drive
.media
= 'cdrom';
13 if (values
.mediaType
=== 'iso') {
14 me
.drive
.file
= values
.cdimage
;
15 } else if (values
.mediaType
=== 'cdrom') {
16 me
.drive
.file
= 'cdrom';
18 me
.drive
.file
= 'none';
23 params
[confid
] = PVE
.Parser
.printQemuDrive(me
.drive
);
28 setVMConfig: function(vmconfig
) {
32 me
.bussel
.setVMConfig(vmconfig
, 'cdrom');
36 setDrive: function(drive
) {
40 if (drive
.file
=== 'cdrom') {
41 values
.mediaType
= 'cdrom';
42 } else if (drive
.file
=== 'none') {
43 values
.mediaType
= 'none';
45 values
.mediaType
= 'iso';
46 var match
= drive
.file
.match(/^([^:]+):/);
48 values
.cdstorage
= match
[1];
49 values
.cdimage
= drive
.file
;
58 setNodename: function(nodename
) {
61 me
.cdstoragesel
.setNodename(nodename
);
62 me
.cdfilesel
.setStorage(undefined, nodename
);
65 initComponent: function() {
73 me
.bussel
= Ext
.create('PVE.form.ControllerSelector', {
76 items
.push(me
.bussel
);
83 boxLabel
: gettext('Use CD/DVD disc image file (iso)'),
86 change: function(f
, value
) {
90 me
.down('field[name=cdstorage]').setDisabled(!value
);
91 var cdImageField
= me
.down('field[name=cdimage]');
92 cdImageField
.setDisabled(!value
);
94 cdImageField
.validate();
102 me
.cdfilesel
= Ext
.create('PVE.form.FileSelector', {
104 nodename
: me
.nodename
,
105 storageContent
: 'iso',
106 fieldLabel
: gettext('ISO image'),
111 me
.cdstoragesel
= Ext
.create('PVE.form.StorageSelector', {
113 nodename
: me
.nodename
,
114 fieldLabel
: gettext('Storage'),
116 storageContent
: 'iso',
118 autoSelect
: me
.insideWizard
,
120 change: function(f
, value
) {
121 me
.cdfilesel
.setStorage(value
);
126 items
.push(me
.cdstoragesel
);
127 items
.push(me
.cdfilesel
);
133 boxLabel
: gettext('Use physical CD/DVD Drive'),
140 boxLabel
: gettext('Do not use any media'),
149 Ext
.define('PVE.qemu.CDEdit', {
150 extend
: 'Proxmox.window.Edit',
154 initComponent: function() {
157 var nodename
= me
.pveSelNode
.data
.node
;
159 throw "no node name specified";
162 me
.isCreate
= !me
.confid
;
164 var ipanel
= Ext
.create('PVE.qemu.CDInputPanel', {
170 subject
: 'CD/DVD Drive',
177 success: function(response
, options
) {
178 ipanel
.setVMConfig(response
.result
.data
);
180 var value
= response
.result
.data
[me
.confid
];
181 var drive
= PVE
.Parser
.parseQemuDrive(me
.confid
, value
);
183 Ext
.Msg
.alert('Error', 'Unable to parse drive options');
187 ipanel
.setDrive(drive
);