]>
Commit | Line | Data |
---|---|---|
f28ec3e4 TL |
1 | Ext.define('PVE.panel.StorageBase', { |
2 | extend: 'Proxmox.panel.InputPanel', | |
3 | controller: 'storageEdit', | |
4 | ||
5 | type: '', | |
6 | ||
7 | onGetValues: function(values) { | |
8 | var me = this; | |
9 | ||
10 | if (me.isCreate) { | |
11 | values.type = me.type; | |
12 | } else { | |
13 | delete values.storage; | |
14 | } | |
15 | ||
16 | values.disable = values.enable ? 0 : 1; | |
17 | delete values.enable; | |
18 | ||
19 | return values; | |
20 | }, | |
21 | ||
22 | initComponent : function() { | |
23 | var me = this; | |
24 | ||
25 | me.column1.unshift({ | |
26 | xtype: me.isCreate ? 'textfield' : 'displayfield', | |
27 | name: 'storage', | |
28 | value: me.storageId || '', | |
29 | fieldLabel: 'ID', | |
30 | vtype: 'StorageId', | |
31 | allowBlank: false | |
32 | }); | |
33 | ||
4a45a1d9 | 34 | me.column2 ||= []; |
f28ec3e4 TL |
35 | me.column2.unshift( |
36 | { | |
37 | xtype: 'pveNodeSelector', | |
38 | name: 'nodes', | |
39 | disabled: me.storageId === 'local', | |
40 | fieldLabel: gettext('Nodes'), | |
41 | emptyText: gettext('All') + ' (' + gettext('No restrictions') +')', | |
42 | multiSelect: true, | |
43 | autoSelect: false | |
44 | }, | |
45 | { | |
46 | xtype: 'proxmoxcheckbox', | |
47 | name: 'enable', | |
48 | checked: true, | |
49 | uncheckedValue: 0, | |
50 | fieldLabel: gettext('Enable') | |
51 | } | |
52 | ); | |
53 | ||
54 | me.callParent(); | |
55 | } | |
56 | }); | |
57 | ||
58 | Ext.define('PVE.storage.BaseEdit', { | |
59 | extend: 'Proxmox.window.Edit', | |
60 | ||
71dec88f TL |
61 | apiCallDone: function(success, response, options) { |
62 | let me = this; | |
63 | if (typeof me.ipanel.apiCallDone === "function") { | |
64 | me.ipanel.apiCallDone(success, response, options); | |
65 | } | |
66 | }, | |
67 | ||
f28ec3e4 TL |
68 | initComponent : function() { |
69 | var me = this; | |
70 | ||
71 | me.isCreate = !me.storageId; | |
72 | ||
73 | if (me.isCreate) { | |
f3c1eac7 TL |
74 | me.url = '/api2/extjs/storage'; |
75 | me.method = 'POST'; | |
76 | } else { | |
77 | me.url = '/api2/extjs/storage/' + me.storageId; | |
78 | me.method = 'PUT'; | |
79 | } | |
f28ec3e4 | 80 | |
71dec88f | 81 | me.ipanel = Ext.create(me.paneltype, { |
f28ec3e4 TL |
82 | type: me.type, |
83 | isCreate: me.isCreate, | |
84 | storageId: me.storageId | |
85 | }); | |
86 | ||
87 | Ext.apply(me, { | |
88 | subject: PVE.Utils.format_storage_type(me.type), | |
89 | isAdd: true, | |
71dec88f | 90 | items: [ me.ipanel ] |
f28ec3e4 TL |
91 | }); |
92 | ||
93 | me.callParent(); | |
94 | ||
95 | if (!me.isCreate) { | |
96 | me.load({ | |
97 | success: function(response, options) { | |
98 | var values = response.result.data; | |
99 | var ctypes = values.content || ''; | |
100 | ||
101 | values.content = ctypes.split(','); | |
102 | ||
103 | if (values.nodes) { | |
104 | values.nodes = values.nodes.split(','); | |
105 | } | |
106 | values.enable = values.disable ? 0 : 1; | |
107 | ||
71dec88f | 108 | me.ipanel.setValues(values); |
f28ec3e4 TL |
109 | } |
110 | }); | |
111 | } | |
112 | } | |
113 | }); |