afterrender: 'onOSTypeChange',
change: 'onOSTypeChange',
},
+ 'checkbox[reference=enableSecondCD]': {
+ change: 'onSecondCDChange',
+ },
},
onOSBaseChange: function(field, value) {
- this.lookup('ostype').getStore().setData(PVE.Utils.kvm_ostypes[value]);
+ let me = this;
+ me.lookup('ostype').getStore().setData(PVE.Utils.kvm_ostypes[value]);
+ if (me.getView().insideWizard) {
+ let isWindows = value === 'Microsoft Windows';
+ let enableSecondCD = me.lookup('enableSecondCD');
+ enableSecondCD.setVisible(isWindows);
+ if (!isWindows) {
+ enableSecondCD.setValue(false);
+ }
+ }
},
onOSTypeChange: function(field) {
var me = this, ostype = field.getValue();
// ignore multiple disks, we only want to set the type if there is a single disk
}
},
+ onSecondCDChange: function(widget, value, lastValue) {
+ let me = this;
+ let vm = me.getViewModel();
+ let updateVMConfig = function () {
+ let widgets = Ext.ComponentQuery.query('pveMultiHDPanel');
+ if (widgets.length === 1) {
+ widgets[0].getController().updateVMConfig();
+ }
+ };
+ if (value) {
+ // only for windows
+ vm.set('current.ide0', "some");
+ vm.notify();
+ updateVMConfig();
+ me.setWidget('pveBusSelector', 'scsi');
+ me.setWidget('pveNetworkCardSelector', 'virtio');
+ } else {
+ vm.set('current.ide0', "");
+ vm.notify();
+ updateVMConfig();
+ me.setWidget('pveBusSelector', 'scsi');
+ let ostype = me.lookup('ostype').getValue();
+ var targetValues = PVE.qemu.OSDefaults.getDefaults(ostype);
+ me.setWidget('pveBusSelector', targetValues.busType);
+ }
+ },
+ },
+
+ setNodename: function(nodename) {
+ var me = this;
+ me.lookup('isoSelector').setNodename(nodename);
+ },
+
+ onGetValues: function(values) {
+ if (values.ide0) {
+ let drive = {
+ media: 'cdrom',
+ file: values.ide0,
+ };
+ values.ide0 = PVE.Parser.printQemuDrive(drive);
+ }
+ return values;
},
initComponent: function() {
},
];
+ if (me.insideWizard) {
+ me.items.push(
+ {
+ xtype: 'proxmoxcheckbox',
+ reference: 'enableSecondCD',
+ isFormField: false,
+ hidden: true,
+ checked: false,
+ boxLabel: gettext('Add Second CD/DVD Image file (iso)'),
+ listeners: {
+ change: function(cb, value) {
+ me.lookup('isoSelector').setDisabled(!value);
+ me.lookup('isoSelector').setHidden(!value);
+ },
+ },
+ },
+ {
+ xtype: 'pveIsoSelector',
+ reference: 'isoSelector',
+ name: 'ide0',
+ nodename: me.nodename,
+ insideWizard: true,
+ hidden: true,
+ disabled: true,
+ },
+ );
+ }
+
me.callParent();
},
});