]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/form/FileSelector.js
use ComboGrid from proxmox-widget-toolkit
[pve-manager.git] / www / manager6 / form / FileSelector.js
CommitLineData
b3d7d5c4 1Ext.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});