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.csa...@proxmox.com>
---
 www/manager6/form/USBSelector.js | 32 +++++++++++++++++++++++---------
 1 file changed, 23 insertions(+), 9 deletions(-)

diff --git a/www/manager6/form/USBSelector.js b/www/manager6/form/USBSelector.js
index a67c8765..011778d7 100644
--- a/www/manager6/form/USBSelector.js
+++ b/www/manager6/form/USBSelector.js
@@ -23,25 +23,39 @@ Ext.define('PVE.form.USBSelector', {
        return gettext("Invalid Value");
     },
 
-    initComponent: function() {
+    setNodename: function(nodename) {
        var me = this;
 
-       var nodename = me.pveSelNode.data.node;
+       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;
 
-       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() {
-- 
2.30.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to