]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/form/FileSelector.js
use RestProxy from widget toolkit
[pve-manager.git] / www / manager6 / form / FileSelector.js
1 Ext.define('PVE.form.FileSelector', {
2 extend: 'Proxmox.form.ComboGrid',
3 alias: 'widget.pveFileSelector',
4
5 editable: true,
6 anyMatch: true,
7 forceSelection: true,
8
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: 'proxmox',
34 url: url
35 });
36
37 me.store.removeAll();
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: {
55 width: 600,
56 columns: [
57 {
58 header: gettext('Name'),
59 dataIndex: 'text',
60 hideable: false,
61 flex: 1
62 },
63 {
64 header: gettext('Format'),
65 width: 60,
66 dataIndex: 'format'
67 },
68 {
69 header: gettext('Size'),
70 width: 100,
71 dataIndex: 'size',
72 renderer: Proxmox.Utils.format_size
73 }
74 ]
75 }
76 });
77
78 me.callParent();
79
80 if (!me.disabled) {
81 me.setStorage(me.storage, me.nodename);
82 }
83 }
84 });