]> git.proxmox.com Git - pve-manager.git/blame - www/manager/form/StorageSelector.js
imported from svn 'pve-manager/pve2'
[pve-manager.git] / www / manager / form / StorageSelector.js
CommitLineData
aff192e6
DM
1Ext.define('PVE.form.StorageSelector', {
2 extend: 'PVE.form.ComboGrid',
3 requires: [
4 'Ext.data.Store',
5 'PVE.RestProxy'
6 ],
7 alias: ['widget.PVE.form.StorageSelector'],
8
9 setNodename: function(nodename) {
10 var me = this;
11
12 if (!nodename || (me.nodename === nodename)) {
13 return;
14 }
15
16 me.nodename = nodename;
17
18 var url = '/api2/json/nodes/' + me.nodename + '/storage';
19 if (me.storageContent) {
20 url += '?content=' + me.storageContent;
21 }
22
23 me.store.setProxy({
24 type: 'pve',
25 url: url
26 });
27
28 me.store.load();
29 },
30
31 initComponent: function() {
32 var me = this;
33
34 var nodename = me.nodename;
35 me.nodename = undefined;
36
37 var store = Ext.create('Ext.data.Store', {
38 fields: [ 'storage', 'active', 'type', 'avail', 'total' ]
39 });
40
41 Ext.apply(me, {
42 store: store,
43 allowBlank: false,
44 valueField: 'storage',
45 displayField: 'storage',
46 listConfig: {
47 columns: [
48 {
49 header: 'Name',
50 dataIndex: 'storage',
51 hideable: false,
52 flex: 1
53 },
54 {
55 header: 'Type',
56 width: 60,
57 dataIndex: 'type'
58 },
59 {
60 header: 'Avail',
61 width: 80,
62 dataIndex: 'avail',
63 renderer: PVE.Utils.format_size
64 },
65 {
66 header: 'Capacity',
67 width: 80,
68 dataIndex: 'total',
69 renderer: PVE.Utils.format_size
70 }
71 ]
72 }
73 });
74
75 me.callParent();
76
77 if (nodename) {
78 me.setNodename(nodename);
79 }
80 }
81});