]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/window/USBMapEdit.js
1 Ext
.define('PVE.window.USBMapEditWindow', {
2 extend
: 'Proxmox.window.Edit',
4 mixins
: ['Proxmox.Mixin.CBind'],
6 cbindData: function(initialConfig
) {
8 me
.isCreate
= !me
.name
;
9 me
.method
= me
.isCreate
? 'POST' : 'PUT';
12 nodename
: me
.nodename
,
16 submitUrl: function(_url
, data
) {
18 let name
= me
.isCreate
? '' : me
.name
;
19 return `/cluster/mapping/usb/${name}`;
22 title
: gettext('Add USB mapping'),
24 onlineHelp
: 'resource_mapping',
29 xclass
: 'Ext.app.ViewController',
31 onGetValues: function(values
) {
33 let view
= me
.getView();
34 values
.node
??= view
.nodename
;
36 let type
= me
.getView().down('radiofield').getGroupValue();
37 let name
= values
.name
;
38 let description
= values
.description
;
39 delete values
.description
;
42 if (type
=== 'path') {
43 let usbsel
= me
.lookup(type
);
44 let usbDev
= usbsel
.getStore().findRecord('usbid', values
[type
], 0, false, true, true);
49 values
.id
= `${usbDev.data.vendid}:${usbDev.data.prodid}`;
54 map
= PVE
.Parser
.filterPropertyStringList(me
.originalMap
, (e
) => e
.node
!== values
.node
);
56 map
.push(PVE
.Parser
.printPropertyString(values
));
70 onSetValues: function(values
) {
72 let view
= me
.getView();
73 me
.originalMap
= [...values
.map
];
74 PVE
.Parser
.filterPropertyStringList(values
.map
, (e
) => {
75 if (e
.node
=== view
.nodename
) {
88 modeChange: function(field
, value
) {
90 let type
= field
.inputValue
;
91 let usbsel
= me
.lookup(type
);
92 usbsel
.setDisabled(!value
);
95 nodeChange: function(_field
, value
) {
96 this.lookup('id').setNodename(value
);
97 this.lookup('path').setNodename(value
);
101 init: function(view
) {
104 if (!view
.nodename
) {
105 //throw "no nodename given";
111 change
: 'modeChange',
114 change
: 'nodeChange',
122 onGetValues: function(values
) {
123 return this.up('window').getController().onGetValues(values
);
126 onSetValues: function(values
) {
127 return this.up('window').getController().onSetValues(values
);
132 xtype
: 'pmxDisplayEditField',
133 fieldLabel
: gettext('Name'),
137 submitValue
: '{isCreate}',
143 xtype
: 'pmxDisplayEditField',
144 fieldLabel
: gettext('Node'),
147 xtype
: 'pveNodeSelector',
150 editable
: '{!nodename}',
159 xtype
: 'fieldcontainer',
160 defaultType
: 'radiofield',
167 boxLabel
: gettext('Use USB Vendor/Device ID'),
171 xtype
: 'pveUSBSelector',
176 nodename
: '{nodename}',
180 fieldLabel
: gettext('Choose Device'),
186 boxLabel
: gettext('Use USB Port'),
190 xtype
: 'pveUSBSelector',
195 nodename
: '{nodename}',
200 fieldLabel
: gettext('Choose Port'),
209 xtype
: 'proxmoxtextfield',
210 fieldLabel
: gettext('Comment'),