]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/form/FileSelector.js
ui: eslint: enforce "no-extra-parens" rule
[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 listeners: {
10 afterrender: function() {
11 var me = this;
12 if (!me.disabled) {
13 me.setStorage(me.storage, me.nodename);
14 }
15 },
16 },
17
18 setStorage: function(storage, nodename) {
19 var me = this;
20
21 var change = false;
22 if (storage && me.storage !== storage) {
23 me.storage = storage;
24 change = true;
25 }
26
27 if (nodename && me.nodename !== nodename) {
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({
42 type: 'proxmox',
43 url: url,
44 });
45
46 me.store.removeAll();
47 me.store.load();
48 },
49
50 setNodename: function(nodename) {
51 this.setStorage(undefined, nodename);
52 },
53
54 store: {
55 model: 'pve-storage-content',
56 },
57
58 allowBlank: false,
59 autoSelect: false,
60 valueField: 'volid',
61 displayField: 'text',
62
63 listConfig: {
64 width: 600,
65 columns: [
66 {
67 header: gettext('Name'),
68 dataIndex: 'text',
69 hideable: false,
70 flex: 1,
71 },
72 {
73 header: gettext('Format'),
74 width: 60,
75 dataIndex: 'format',
76 },
77 {
78 header: gettext('Size'),
79 width: 100,
80 dataIndex: 'size',
81 renderer: Proxmox.Utils.format_size,
82 },
83 ],
84 },
85 });