]>
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 | ||
cb90483c TL |
9 | listeners: { |
10 | afterrender: function() { | |
11 | var me = this; | |
12 | if (!me.disabled) { | |
13 | me.setStorage(me.storage, me.nodename); | |
14 | } | |
f6710aac | 15 | }, |
cb90483c TL |
16 | }, |
17 | ||
b3d7d5c4 DM |
18 | setStorage: function(storage, nodename) { |
19 | var me = this; | |
20 | ||
21 | var change = false; | |
53e3ea84 | 22 | if (storage && me.storage !== storage) { |
b3d7d5c4 DM |
23 | me.storage = storage; |
24 | change = true; | |
25 | } | |
26 | ||
53e3ea84 | 27 | if (nodename && me.nodename !== nodename) { |
b3d7d5c4 DM |
28 | me.nodename = nodename; |
29 | change = true; | |
30 | } | |
31 | ||
32 | if (!(me.storage && me.nodename && change)) { | |
33 | return; | |
34 | } | |
35 | ||
36 | var url = '/api2/json/nodes/' + me.nodename + '/storage/' + me.storage + '/content'; | |
37 | if (me.storageContent) { | |
38 | url += '?content=' + me.storageContent; | |
39 | } | |
40 | ||
41 | me.store.setProxy({ | |
56a353b9 | 42 | type: 'proxmox', |
f6710aac | 43 | url: url, |
b3d7d5c4 DM |
44 | }); |
45 | ||
4d8a3455 | 46 | me.store.removeAll(); |
b3d7d5c4 DM |
47 | me.store.load(); |
48 | }, | |
49 | ||
f03db57e TL |
50 | setNodename: function(nodename) { |
51 | this.setStorage(undefined, nodename); | |
52 | }, | |
53 | ||
cb90483c | 54 | store: { |
f6710aac | 55 | model: 'pve-storage-content', |
cb90483c | 56 | }, |
b3d7d5c4 | 57 | |
cb90483c TL |
58 | allowBlank: false, |
59 | autoSelect: false, | |
60 | valueField: 'volid', | |
61 | displayField: 'text', | |
b3d7d5c4 | 62 | |
cb90483c TL |
63 | listConfig: { |
64 | width: 600, | |
65 | columns: [ | |
66 | { | |
67 | header: gettext('Name'), | |
68 | dataIndex: 'text', | |
69 | hideable: false, | |
f6710aac | 70 | flex: 1, |
cb90483c TL |
71 | }, |
72 | { | |
73 | header: gettext('Format'), | |
74 | width: 60, | |
f6710aac | 75 | dataIndex: 'format', |
cb90483c TL |
76 | }, |
77 | { | |
78 | header: gettext('Size'), | |
79 | width: 100, | |
80 | dataIndex: 'size', | |
f6710aac TL |
81 | renderer: Proxmox.Utils.format_size, |
82 | }, | |
83 | ], | |
84 | }, | |
b3d7d5c4 | 85 | }); |