this is used to select a mediated device type

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
chnages from v2:
* api path change
* setProxy optimized -> only 1 url generation -> less code

 www/manager6/Makefile             |  1 +
 www/manager6/form/MDevSelector.js | 91 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 92 insertions(+)
 create mode 100644 www/manager6/form/MDevSelector.js

diff --git a/www/manager6/Makefile b/www/manager6/Makefile
index 03fc93e0..d900ec88 100644
--- a/www/manager6/Makefile
+++ b/www/manager6/Makefile
@@ -42,6 +42,7 @@ JSSRC=                                                        
\
        form/DiskStorageSelector.js                     \
        form/BridgeSelector.js                          \
        form/PCISelector.js                             \
+       form/MDevSelector.js                            \
        form/SecurityGroupSelector.js                   \
        form/IPRefSelector.js                           \
        form/IPProtocolSelector.js                      \
diff --git a/www/manager6/form/MDevSelector.js 
b/www/manager6/form/MDevSelector.js
new file mode 100644
index 00000000..2eabd793
--- /dev/null
+++ b/www/manager6/form/MDevSelector.js
@@ -0,0 +1,91 @@
+Ext.define('PVE.form.MDevSelector', {
+    extend: 'Proxmox.form.ComboGrid',
+    xtype: 'pveMDevSelector',
+
+    store: {
+       fields: [ 'type','available', 'description' ],
+       filterOnLoad: true,
+       sorters: [
+           {
+               property : 'type',
+               direction: 'ASC'
+           }
+       ]
+    },
+    autoSelect: false,
+    valueField: 'type',
+    displayField: 'type',
+    listConfig: {
+       columns: [
+           {
+               header: gettext('Type'),
+               dataIndex: 'type',
+               flex: 1
+           },
+           {
+               header: gettext('Available'),
+               dataIndex: 'available',
+               width: 80
+           },
+           {
+               header: gettext('Description'),
+               dataIndex: 'description',
+               flex: 1,
+               renderer: function(value) {
+                   if (!value) {
+                       return '';
+                   }
+
+                   return value.split('\n').join('<br>');
+               }
+           }
+       ]
+    },
+
+    setPciID: function(pciid, force) {
+       var me = this;
+
+       if (!force && (!pciid || (me.pciid === pciid))) {
+           return;
+       }
+
+       me.pciid = pciid;
+       me.updateProxy();
+    },
+
+
+    setNodename: function(nodename) {
+       var me = this;
+
+       if (!nodename || (me.nodename === nodename)) {
+           return;
+       }
+
+       me.nodename = nodename;
+       me.updateProxy();
+    },
+
+    updateProxy: function() {
+       var me = this;
+       me.store.setProxy({
+           type: 'proxmox',
+           url: '/api2/json/nodes/' + me.nodename + '/scan/pci/' + me.pciid + 
'/mdev'
+       });
+       me.store.load();
+    },
+
+    initComponent: function() {
+       var me = this;
+
+       if (!me.nodename) {
+           throw 'no node name specified';
+       }
+
+        me.callParent();
+
+       if (me.pciid) {
+           me.setPciID(me.pciid, true);
+       }
+    }
+});
+
-- 
2.11.0


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

Reply via email to