sortByPreviousUsage: function(vmconfig, controllerList) {
let usedControllers = {};
- for (const type of PVE.Utils.diskControllerMaxIDs) {
+ for (const type of Object.keys(PVE.Utils.diskControllerMaxIDs)) {
usedControllers[type] = 0;
}
- for (const property of vmconfig) {
+ for (const property of Object.keys(vmconfig)) {
if (property.match(PVE.Utils.bus_match) && !vmconfig[property].match(/media=cdrom/)) {
const foundController = property.match(PVE.Utils.bus_match)[1];
usedControllers[foundController]++;
}
}
- var vmDefaults = PVE.qemu.OSDefaults[vmconfig.ostype];
-
- var sortPriority = vmDefaults && vmDefaults.busPriority
- ? vmDefaults.busPriority : PVE.qemu.OSDefaults.generic;
+ var sortPriority = PVE.qemu.OSDefaults.getDefaults(vmconfig.ostype).busPriority;
var sortedList = Ext.clone(controllerList);
sortedList.sort(function(a, b) {
return;
}
clist = ['ide', 'scsi', 'sata'];
- } else {
+ } else {
// in most cases we want to add a disk to the same controller
// we previously used
clist = me.sortByPreviousUsage(me.vmconfig, clist);
}
+clist_loop:
for (const controller of clist) {
bussel.setValue(controller);
for (let i = 0; i < PVE.Utils.diskControllerMaxIDs[controller]; i++) {
let confid = controller + i.toString();
if (!Ext.isDefined(me.vmconfig[confid])) {
deviceid.setValue(i);
- break;
+ break clist_loop; // we found the desired controller/id combo
}
}
}
fieldLabel: gettext('Bus/Device'),
layout: 'hbox',
defaults: {
- hideLabel: true
+ hideLabel: true,
},
items: [
{
var field = me.down('field[name=deviceid]');
field.setMaxValue(PVE.Utils.diskControllerMaxIDs[value]);
field.validate();
- }
- }
+ },
+ },
},
{
xtype: 'proxmoxintegerfield',
flex: 1,
allowBlank: false,
validator: function(value) {
- /*jslint confusion: true */
if (!me.rendered) {
return;
}
return "This device is already in use.";
}
return true;
- }
- }
- ]
+ },
+ },
+ ],
});
me.callParent();
- }
+ },
});