]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/qemu/USBEdit.js
1 Ext
.define('PVE.qemu.USBInputPanel', {
2 extend
: 'Proxmox.panel.InputPanel',
3 mixins
: ['Proxmox.Mixin.CBind' ],
6 onlineHelp
: 'qm_usb_passthrough',
12 setVMConfig: function(vmconfig
) {
14 me
.vmconfig
= vmconfig
;
17 onGetValues: function(values
) {
20 for (let i
= 0; i
< 6; i
++) {
21 let id
= 'usb' + i
.toString();
22 if (!me
.vmconfig
[id
]) {
29 var type
= me
.down('radiofield').getGroupValue();
36 val
= 'host=' + values
[type
];
40 throw "invalid type selected";
47 values
[me
.confid
] = val
;
53 xtype
: 'fieldcontainer',
54 defaultType
: 'radiofield',
60 boxLabel
: gettext('Spice Port'),
66 inputValue
: 'hostdevice',
67 boxLabel
: gettext('Use USB Vendor/Device ID'),
68 reference
: 'hostdevice',
72 xtype
: 'pveUSBSelector',
76 cbind
: { pveSelNode
: '{pveSelNode}' },
77 bind
: { disabled
: '{!hostdevice.checked}' },
80 fieldLabel
: gettext('Choose Device'),
86 boxLabel
: gettext('Use USB Port'),
91 xtype
: 'pveUSBSelector',
94 cbind
: { pveSelNode
: '{pveSelNode}' },
95 bind
: { disabled
: '{!port.checked}' },
99 fieldLabel
: gettext('Choose Port'),
108 fieldLabel
: gettext('Use USB3'),
115 Ext
.define('PVE.qemu.USBEdit', {
116 extend
: 'Proxmox.window.Edit',
122 subject
: gettext('USB Device'),
124 initComponent : function() {
127 me
.isCreate
= !me
.confid
;
129 var ipanel
= Ext
.create('PVE.qemu.USBInputPanel', {
131 pveSelNode
: me
.pveSelNode
,
141 success: function(response
, options
) {
142 ipanel
.setVMConfig(response
.result
.data
);
147 var data
= response
.result
.data
[me
.confid
].split(',');
148 var port
, hostdevice
, usb3
= false;
151 for (let i
= 0; i
< data
.length
; i
++) {
152 if (/^(host=)?(0x)?[a-zA-Z0-9]{4}\:(0x)?[a-zA-Z0-9]{4}$/.test(data
[i
])) {
153 hostdevice
= data
[i
];
154 hostdevice
= hostdevice
.replace('host=', '').replace('0x', '');
156 } else if (/^(host=)?(\d+)\-(\d+(\.\d+)*)$/.test(data
[i
])) {
158 port
= port
.replace('host=', '');
162 if (/^usb3=(1|on|true)$/.test(data
[i
])) {
168 hostdevice
: hostdevice
,
173 ipanel
.setValues(values
);