]> git.proxmox.com Git - pve-manager.git/blob - www/manager/form/FileSelector.js
d0d7deba869506aab98a847589b4699491c619ef
[pve-manager.git] / www / manager / form / FileSelector.js
1 Ext.define('PVE.form.FileSelector', {
2 extend: 'PVE.form.ComboGrid',
3 alias: ['widget.pveFileSelector'],
4
5 setStorage: function(storage, nodename) {
6 var me = this;
7
8 var change = false;
9 if (storage && (me.storage !== storage)) {
10 me.storage = storage;
11 change = true;
12 }
13
14 if (nodename && (me.nodename !== nodename)) {
15 me.nodename = nodename;
16 change = true;
17 }
18
19 if (!(me.storage && me.nodename && change)) {
20 return;
21 }
22
23 var url = '/api2/json/nodes/' + me.nodename + '/storage/' + me.storage + '/content';
24 if (me.storageContent) {
25 url += '?content=' + me.storageContent;
26 }
27
28 me.store.setProxy({
29 type: 'pve',
30 url: url
31 });
32
33 me.store.load();
34 },
35
36 initComponent: function() {
37 var me = this;
38
39 var store = Ext.create('Ext.data.Store', {
40 model: 'pve-storage-content'
41 });
42
43 Ext.apply(me, {
44 store: store,
45 allowBlank: false,
46 autoSelect: false,
47 valueField: 'volid',
48 displayField: 'text',
49 listConfig: {
50 columns: [
51 {
52 header: 'Name',
53 dataIndex: 'text',
54 hideable: false,
55 flex: 1
56 },
57 {
58 header: 'Format',
59 width: 60,
60 dataIndex: 'format'
61 },
62 {
63 header: 'Size',
64 width: 60,
65 dataIndex: 'size',
66 renderer: PVE.Utils.format_size
67 }
68 ]
69 }
70 });
71
72 me.callParent();
73
74 me.setStorage(me.storage, me.nodename);
75 }
76 });