]> git.proxmox.com Git - proxmox-widget-toolkit.git/blame - src/form/DiskSelector.js
displayedit: allow passing an explicit displayConfig
[proxmox-widget-toolkit.git] / src / form / DiskSelector.js
CommitLineData
4f0c0764
DC
1Ext.define('Proxmox.form.DiskSelector', {
2 extend: 'Proxmox.form.ComboGrid',
3 xtype: 'pmxDiskSelector',
4
5 // can be
6 // undefined: all
7 // unused: only unused
8 // journal_disk: all disks with gpt
9 diskType: undefined,
10
11 // the property the backend wnats for the type ('type' by default)
12 typeProperty: 'type',
13
14 valueField: 'devpath',
15 displayField: 'devpath',
16 emptyText: gettext('No Disks unused'),
17 listConfig: {
18 width: 600,
19 columns: [
20 {
21 header: gettext('Device'),
22 flex: 3,
23 sortable: true,
24 dataIndex: 'devpath',
25 },
26 {
27 header: gettext('Size'),
28 flex: 2,
29 sortable: false,
30 renderer: Proxmox.Utils.format_size,
31 dataIndex: 'size',
32 },
33 {
34 header: gettext('Serial'),
35 flex: 5,
36 sortable: true,
37 dataIndex: 'serial',
38 },
39 ],
40 },
41
42 initComponent: function() {
43 var me = this;
44
45 var nodename = me.nodename;
46 if (!nodename) {
47 throw "no node name specified";
48 }
49
50 let extraParams = {};
51
52 if (me.diskType) {
53 extraParams[me.typeProperty] = me.diskType;
54 }
55
56 var store = Ext.create('Ext.data.Store', {
57 filterOnLoad: true,
58 model: 'pmx-disk-list',
59 proxy: {
60 type: 'proxmox',
61 url: `/api2/json/nodes/${nodename}/disks/list`,
62 extraParams,
63 },
64 sorters: [
65 {
66 property: 'devpath',
67 direction: 'ASC',
68 },
69 ],
70 });
71
72 Ext.apply(me, {
73 store: store,
74 });
75
76 me.callParent();
77
78 store.load();
79 },
80});