]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/form/USBSelector.js
1 Ext
.define('PVE.form.USBSelector', {
2 extend
: 'Proxmox.form.ComboGrid',
3 alias
: ['widget.pveUSBSelector'],
10 getUSBValue: function() {
12 var rec
= me
.store
.findRecord('usbid', me
.value
);
13 var val
= 'host='+ me
.value
;
14 if (rec
&& rec
.data
.speed
=== "5000") {
15 val
= 'host=' + me
.value
+ ",usb3=1";
20 validator: function(value
) {
22 if (me
.type
=== 'device') {
23 return (/^[a-f0-9]{4}\:[a-f0-9]{4}$/i).test(value
);
24 } else if (me
.type
=== 'port') {
25 return (/^[0-9]+\-[0-9]+(\.[0-9]+)*$/).test(value
);
30 initComponent: function() {
33 var nodename
= me
.pveSelNode
.data
.node
;
36 throw "no nodename specified";
39 if (me
.type
!== 'device' && me
.type
!== 'port') {
40 throw "no valid type specified";
43 var store
= new Ext
.data
.Store({
44 model
: 'pve-usb-' + me
.type
,
47 url
: "/api2/json/nodes/" + nodename
+ "/scan/usb"
51 return !!item
.data
.usbpath
&& !!item
.data
.prodid
&& item
.data
['class'] != 9;
61 header
: (me
.type
=== 'device')?gettext('Device'):gettext('Port'),
67 header
: gettext('Manufacturer'),
69 dataIndex
: 'manufacturer',
73 header
: gettext('Product'),
79 header
: gettext('Speed'),
83 renderer: function(value
) {
84 if (value
=== "5000") {
86 } else if (value
=== "480") {
104 Ext
.define('pve-usb-device', {
105 extend
: 'Ext.data.Model',
109 convert: function(val
, data
) {
113 return data
.get('vendid') + ':' + data
.get('prodid');
116 'speed', 'product', 'manufacturer', 'vendid', 'prodid', 'usbpath',
117 { name
: 'port' , type
: 'number' },
118 { name
: 'level' , type
: 'number' },
119 { name
: 'class' , type
: 'number' },
120 { name
: 'devnum' , type
: 'number' },
121 { name
: 'busnum' , type
: 'number' }
125 Ext
.define('pve-usb-port', {
126 extend
: 'Ext.data.Model',
130 convert: function(val
,data
) {
134 return data
.get('busnum') + '-' + data
.get('usbpath');
137 'speed', 'product', 'manufacturer', 'vendid', 'prodid', 'usbpath',
138 { name
: 'port' , type
: 'number' },
139 { name
: 'level' , type
: 'number' },
140 { name
: 'class' , type
: 'number' },
141 { name
: 'devnum' , type
: 'number' },
142 { name
: 'busnum' , type
: 'number' }