]>
Commit | Line | Data |
---|---|---|
4f0c0764 DC |
1 | Ext.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 | }); |