pve-manager/www/manager6/form/PCISelector.js
Dominik Csapak 60bb91ba55 gui: add form/PCISelector
this adds a form field for selecting a pci device

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-11-22 13:31:31 +01:00

91 lines
1.5 KiB
JavaScript

Ext.define('PVE.form.PCISelector', {
extend: 'Proxmox.form.ComboGrid',
xtype: 'pvePCISelector',
store: {
fields: [ 'id','vendor_name', 'device_name', 'vendor', 'device', 'iommugroup', 'mdev' ],
filterOnLoad: true,
sorters: [
{
property : 'id',
direction: 'ASC'
}
]
},
autoSelect: false,
valueField: 'id',
displayField: 'id',
// can contain a load callback for the store
// useful to determine the state of the IOMMU
onLoadCallBack: undefined,
listConfig: {
width: 800,
columns: [
{
header: 'ID',
dataIndex: 'id',
width: 80
},
{
header: gettext('IOMMU Group'),
dataIndex: 'iommugroup',
width: 50
},
{
header: gettext('Vendor'),
dataIndex: 'vendor_name',
flex: 2
},
{
header: gettext('Device'),
dataIndex: 'device_name',
flex: 6
},
{
header: gettext('Mediated Devices'),
dataIndex: 'mdev',
flex: 1,
renderer: function(val) {
return Proxmox.Utils.format_boolean(!!val);
}
}
]
},
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 + '/scan/pci'
});
me.store.load();
},
initComponent: function() {
var me = this;
var nodename = me.nodename;
me.nodename = undefined;
me.callParent();
if (me.onLoadCallBack !== undefined) {
me.mon(me.getStore(), 'load', me.onLoadCallBack);
}
me.setNodename(nodename);
}
});