]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/form/ControllerSelector.js
1 Ext
.define('PVE.form.ControllerSelector', {
2 extend
: 'Ext.form.FieldContainer',
3 alias
: 'widget.pveControllerSelector',
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'),
68 xtype
: 'pveBusSelector',
71 noVirtIO
: me
.noVirtIO
,
75 change: function(t
, value
) {
76 if (!me
.rendered
|| !value
) {
79 var field
= me
.down('field[name=deviceid]');
80 field
.setMaxValue(PVE
.form
.ControllerSelector
.maxIds
[value
]);
89 maxValue
: PVE
.form
.ControllerSelector
.maxIds
.ide
,
91 validator: function(value
) {
92 /*jslint confusion: true */
96 var field
= me
.down('field[name=controller]');
97 var controller
= field
.getValue();
98 var confid
= controller
+ value
;
99 if (Ext
.isDefined(me
.vmconfig
[confid
])) {
100 return "This device is already in use.";