ui: form/USBSelector: make it more flexible with nodename

similar to the pciselector, make it accept a plain nodename,
or no node at all and provide a setNodename function

to keep backwards compatibility, also check pveSelNode for the nodename

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2023-06-16 15:05:30 +02:00 committed by Thomas Lamprecht
parent d5a9606710
commit a88b4ef9ad

View File

@ -23,25 +23,39 @@ Ext.define('PVE.form.USBSelector', {
return gettext("Invalid Value");
},
setNodename: function(nodename) {
var me = this;
if (!nodename || me.nodename === nodename) {
return;
}
me.nodename = nodename;
me.store.setProxy({
type: 'proxmox',
url: `/api2/json/nodes/${me.nodename}/hardware/usb`,
});
me.store.load();
},
initComponent: function() {
var me = this;
var nodename = me.pveSelNode.data.node;
if (!nodename) {
throw "no nodename specified";
if (me.pveSelNode) {
me.nodename = me.pveSelNode.data.node;
}
var nodename = me.nodename;
me.nodename = undefined;
if (me.type !== 'device' && me.type !== 'port') {
throw "no valid type specified";
}
let store = new Ext.data.Store({
model: `pve-usb-${me.type}`,
proxy: {
type: 'proxmox',
url: `/api2/json/nodes/${nodename}/hardware/usb`,
},
filters: [
({ data }) => !!data.usbpath && !!data.prodid && String(data.class) !== "9",
],
@ -99,7 +113,7 @@ Ext.define('PVE.form.USBSelector', {
me.callParent();
store.load();
me.setNodename(nodename);
},
}, function() {