]>
git.proxmox.com Git - pve-manager.git/blob - www/manager5/form/ControllerSelector.js
dfff96b218ca168ff8327a742ef0a347f8f40b9e
1 Ext
.define('PVE.form.ControllerSelector', {
2 extend
: 'Ext.form.FieldContainer',
3 alias
: ['widget.PVE.form.ControllerSelector'],
18 vmconfig
: {}, // used to check for existing devices
20 setVMConfig: function(vmconfig
, autoSelect
) {
23 me
.vmconfig
= Ext
.apply({}, vmconfig
);
25 var clist
= ['ide', 'virtio', 'scsi', 'sata'];
26 if (autoSelect
=== 'cdrom') {
27 clist
= ['ide', 'scsi', 'sata'];
28 if (!Ext
.isDefined(me
.vmconfig
.ide2
)) {
29 me
.down('field[name=controller]').setValue('ide');
30 me
.down('field[name=deviceid]').setValue(2);
33 } else if (me
.vmconfig
.ostype
=== 'l26') {
34 clist
= ['virtio', 'ide', 'scsi', 'sata'];
37 Ext
.Array
.each(clist
, function(controller
) {
39 if ((controller
=== 'virtio' && me
.noVirtIO
) ||
40 (controller
=== 'scsi' && me
.noScsi
)) {
43 me
.down('field[name=controller]').setValue(controller
);
44 for (i
= 0; i
<= PVE
.form
.ControllerSelector
.maxIds
[controller
]; i
++) {
45 confid
= controller
+ i
.toString();
46 if (!Ext
.isDefined(me
.vmconfig
[confid
])) {
47 me
.down('field[name=deviceid]').setValue(i
);
48 return false; // break
53 me
.down('field[name=deviceid]').validate();
56 initComponent: function() {
60 fieldLabel
: gettext('Bus/Device'),
62 height
: 22, // hack: set to same height as other fields
69 xtype
: 'PVE.form.BusTypeSelector',
72 noVirtIO
: me
.noVirtIO
,
76 change: function(t
, value
) {
77 if (!me
.rendered
|| !value
) {
80 var field
= me
.down('field[name=deviceid]');
81 field
.setMaxValue(PVE
.form
.ControllerSelector
.maxIds
[value
]);
90 maxValue
: PVE
.form
.ControllerSelector
.maxIds
.ide
,
92 validator: function(value
) {
93 /*jslint confusion: true */
97 var field
= me
.down('field[name=controller]');
98 var controller
= field
.getValue();
99 var confid
= controller
+ value
;
100 if (Ext
.isDefined(me
.vmconfig
[confid
])) {
101 return "This device is already in use.";