]>
Commit | Line | Data |
---|---|---|
b3d7d5c4 | 1 | Ext.define('PVE.form.FileSelector', { |
0fc95a12 | 2 | extend: 'Proxmox.form.ComboGrid', |
4cb75dd9 | 3 | alias: 'widget.pveFileSelector', |
b3d7d5c4 | 4 | |
1404194f TL |
5 | editable: true, |
6 | anyMatch: true, | |
7 | forceSelection: true, | |
8 | ||
b3d7d5c4 DM |
9 | setStorage: function(storage, nodename) { |
10 | var me = this; | |
11 | ||
12 | var change = false; | |
13 | if (storage && (me.storage !== storage)) { | |
14 | me.storage = storage; | |
15 | change = true; | |
16 | } | |
17 | ||
18 | if (nodename && (me.nodename !== nodename)) { | |
19 | me.nodename = nodename; | |
20 | change = true; | |
21 | } | |
22 | ||
23 | if (!(me.storage && me.nodename && change)) { | |
24 | return; | |
25 | } | |
26 | ||
27 | var url = '/api2/json/nodes/' + me.nodename + '/storage/' + me.storage + '/content'; | |
28 | if (me.storageContent) { | |
29 | url += '?content=' + me.storageContent; | |
30 | } | |
31 | ||
32 | me.store.setProxy({ | |
33 | type: 'pve', | |
34 | url: url | |
35 | }); | |
36 | ||
4d8a3455 | 37 | me.store.removeAll(); |
b3d7d5c4 DM |
38 | me.store.load(); |
39 | }, | |
40 | ||
41 | initComponent: function() { | |
42 | var me = this; | |
43 | ||
44 | var store = Ext.create('Ext.data.Store', { | |
45 | model: 'pve-storage-content' | |
46 | }); | |
47 | ||
48 | Ext.apply(me, { | |
49 | store: store, | |
50 | allowBlank: false, | |
51 | autoSelect: false, | |
52 | valueField: 'volid', | |
53 | displayField: 'text', | |
54 | listConfig: { | |
eae69184 | 55 | width: 600, |
b3d7d5c4 DM |
56 | columns: [ |
57 | { | |
58 | header: gettext('Name'), | |
59 | dataIndex: 'text', | |
60 | hideable: false, | |
61 | flex: 1 | |
62 | }, | |
63 | { | |
64 | header: gettext('Format'), | |
eae69184 | 65 | width: 60, |
b3d7d5c4 DM |
66 | dataIndex: 'format' |
67 | }, | |
68 | { | |
69 | header: gettext('Size'), | |
eae69184 TL |
70 | width: 100, |
71 | dataIndex: 'size', | |
72 | renderer: PVE.Utils.format_size | |
b3d7d5c4 DM |
73 | } |
74 | ] | |
75 | } | |
76 | }); | |
77 | ||
78 | me.callParent(); | |
79 | ||
acd0d10a DC |
80 | if (!me.disabled) { |
81 | me.setStorage(me.storage, me.nodename); | |
82 | } | |
b3d7d5c4 DM |
83 | } |
84 | }); |