]> git.proxmox.com Git - pve-manager.git/commitdiff
ui: form/USBSelector: make it more flexible with nodename
authorDominik Csapak <d.csapak@proxmox.com>
Fri, 16 Jun 2023 13:05:30 +0000 (15:05 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 16 Jun 2023 14:25:42 +0000 (16:25 +0200)
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>
www/manager6/form/USBSelector.js

index a67c8765415f7cc8131b10c57f3dd3bdbc3c320a..011778d7e87714c2df0a7bb957b07865ce409a15 100644 (file)
@@ -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() {