]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/form/MDevSelector.js
update shipped appliance info index
[pve-manager.git] / www / manager6 / form / MDevSelector.js
1 Ext.define('PVE.form.MDevSelector', {
2 extend: 'Proxmox.form.ComboGrid',
3 xtype: 'pveMDevSelector',
4
5 store: {
6 fields: ['type', 'available', 'description'],
7 filterOnLoad: true,
8 sorters: [
9 {
10 property: 'type',
11 direction: 'ASC',
12 },
13 ],
14 },
15 autoSelect: false,
16 valueField: 'type',
17 displayField: 'type',
18 listConfig: {
19 width: 550,
20 columns: [
21 {
22 header: gettext('Type'),
23 dataIndex: 'type',
24 renderer: function(value, md, rec) {
25 if (rec.data.name !== undefined) {
26 return `${rec.data.name} (${value})`;
27 }
28 return value;
29 },
30 flex: 1,
31 },
32 {
33 header: gettext('Avail'),
34 dataIndex: 'available',
35 width: 60,
36 },
37 {
38 header: gettext('Description'),
39 dataIndex: 'description',
40 flex: 1,
41 cellWrap: true,
42 renderer: function(value) {
43 if (!value) {
44 return '';
45 }
46
47 return value.split('\n').join('<br>');
48 },
49 },
50 ],
51 },
52
53 setPciID: function(pciid, force) {
54 var me = this;
55
56 if (!force && (!pciid || me.pciid === pciid)) {
57 return;
58 }
59
60 me.pciid = pciid;
61 me.updateProxy();
62 },
63
64
65 setNodename: function(nodename) {
66 var me = this;
67
68 if (!nodename || me.nodename === nodename) {
69 return;
70 }
71
72 me.nodename = nodename;
73 me.updateProxy();
74 },
75
76 updateProxy: function() {
77 var me = this;
78 me.store.setProxy({
79 type: 'proxmox',
80 url: '/api2/json/nodes/' + me.nodename + '/hardware/pci/' + me.pciid + '/mdev',
81 });
82 me.store.load();
83 },
84
85 initComponent: function() {
86 var me = this;
87
88 if (!me.nodename) {
89 throw 'no node name specified';
90 }
91
92 me.callParent();
93
94 if (me.pciid) {
95 me.setPciID(me.pciid, true);
96 }
97 },
98 });
99