]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/USBMapView.js
1 Ext
.define('pve-resource-usb-tree', {
2 extend
: 'Ext.data.Model',
3 idProperty
: 'internalId',
4 fields
: ['type', 'text', 'path', 'id', 'description', 'digest'],
7 Ext
.define('PVE.dc.USBMapView', {
8 extend
: 'PVE.tree.ResourceMapTree',
9 alias
: 'widget.pveDcUSBMapView',
11 editWindowClass
: 'PVE.window.USBMapEditWindow',
12 baseUrl
: '/cluster/mapping/usb',
13 mapIconCls
: 'fa fa-usb',
14 getStatusCheckUrl
: (node
) => `/nodes/${node}/hardware/usb`,
15 entryIdProperty
: 'id',
17 checkValidity: function(data
, node
) {
21 data
.forEach((entry
) => {
22 ids
[`${entry.vendid}:${entry.prodid}`] = entry
;
23 paths
[`${entry.busnum}-${entry.usbpath}`] = entry
;
25 me
.getRootNode()?.cascade(function(rec
) {
26 if (rec
.data
.node
!== node
|| rec
.data
.type
!== 'map') {
32 device
= paths
[rec
.data
.path
];
34 device
??= ids
[rec
.data
.id
];
38 rec
.set('errmsg', Ext
.String
.format(gettext("Cannot find USB device {0}"), rec
.data
.id
));
44 let deviceId
= `${device.vendid}:${device.prodid}`.replace(/0x/g, '');
52 let errText
= gettext("Configuration for {0} not correct ('{1}' != '{2}')");
53 for (const [key
, validValue
] of Object
.entries(toCheck
)) {
54 if (rec
.data
[key
] !== validValue
) {
55 errors
.push(Ext
.String
.format(errText
, key
, rec
.data
[key
] ?? '', validValue
));
60 rec
.set('valid', valid
);
61 rec
.set('errmsg', errors
.join('<br>'));
68 model
: 'pve-resource-usb-tree',
75 text
: gettext('ID/Node/Vendor&Device'),
80 text
: gettext('Path'),
84 header
: gettext('Status'),
87 renderer
: 'renderStatus',
90 header
: gettext('Comment'),
91 dataIndex
: 'description',
92 renderer: function(value
, _meta
, record
) {
93 return Ext
.String
.htmlEncode(value
?? record
.data
.comment
);