]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/storage/Base.js
ui: storage base panel: cope with undefined column2
[pve-manager.git] / www / manager6 / storage / Base.js
CommitLineData
f28ec3e4
TL
1Ext.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
58Ext.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});