]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/storage/RBDEdit.js
use windowEdit from widget toolkit
[pve-manager.git] / www / manager6 / storage / RBDEdit.js
1 Ext.define('PVE.storage.RBDInputPanel', {
2 extend: 'PVE.panel.InputPanel',
3
4 onGetValues: function(values) {
5 var me = this;
6
7 if (me.isCreate) {
8 values.type = 'rbd';
9 } else {
10 delete values.storage;
11 }
12
13 values.disable = values.enable ? 0 : 1;
14 delete values.enable;
15
16 return values;
17 },
18
19 initComponent : function() {
20 var me = this;
21
22 if (!me.nodename) {
23 me.nodename = 'localhost';
24 }
25
26 me.column1 = [
27 {
28 xtype: me.isCreate ? 'textfield' : 'displayfield',
29 name: 'storage',
30 value: me.storageId || '',
31 fieldLabel: 'ID',
32 vtype: 'StorageId',
33 allowBlank: false
34 }
35 ];
36
37 if (me.pveceph) {
38 me.column1.push(
39 {
40 xtype: me.isCreate ? 'pveCephPoolSelector' : 'displayfield',
41 nodename: me.nodename,
42 name: 'pool',
43 fieldLabel: gettext('Pool'),
44 allowBlank: false
45 }
46 );
47 } else {
48 me.column1.push(
49 {
50 xtype: me.isCreate ? 'textfield' : 'displayfield',
51 name: 'pool',
52 value: 'rbd',
53 fieldLabel: gettext('Pool'),
54 allowBlank: false
55 },
56 {
57 xtype: me.isCreate ? 'textfield' : 'displayfield',
58 name: 'monhost',
59 vtype: 'HostList',
60 value: '',
61 fieldLabel: 'Monitor(s)',
62 allowBlank: false
63 },
64 {
65 xtype: me.isCreate ? 'textfield' : 'displayfield',
66 name: 'username',
67 value: me.isCreate ? 'admin': '',
68 fieldLabel: gettext('User name'),
69 allowBlank: true
70 }
71 );
72 }
73
74 // here value is an array,
75 // while before it was a string
76 /*jslint confusion: true*/
77 me.column2 = [
78 {
79 xtype: 'proxmoxcheckbox',
80 name: 'enable',
81 checked: true,
82 uncheckedValue: 0,
83 fieldLabel: gettext('Enable')
84 },
85 {
86 xtype: 'pveContentTypeSelector',
87 cts: ['images', 'rootdir'],
88 fieldLabel: gettext('Content'),
89 name: 'content',
90 value: ['images'],
91 multiSelect: true,
92 allowBlank: false
93 },
94 {
95 xtype: 'proxmoxcheckbox',
96 name: 'krbd',
97 uncheckedValue: 0,
98 fieldLabel: 'KRBD'
99 }
100 ];
101 /*jslint confusion: false*/
102
103 if (me.isCreate) {
104 me.column2.unshift({
105 xtype: 'pveNodeSelector',
106 name: 'nodes',
107 fieldLabel: gettext('Nodes'),
108 emptyText: gettext('All') + ' (' +
109 gettext('No restrictions') +')',
110 multiSelect: true,
111 autoSelect: false
112 });
113 }
114
115 me.callParent();
116 }
117 });
118
119 Ext.define('PVE.storage.RBDEdit', {
120 extend: 'Proxmox.window.Edit',
121
122 initComponent : function() {
123 var me = this;
124
125 me.isCreate = !me.storageId;
126
127 if (me.isCreate) {
128 me.url = '/api2/extjs/storage';
129 me.method = 'POST';
130 } else {
131 me.url = '/api2/extjs/storage/' + me.storageId;
132 me.method = 'PUT';
133 }
134
135 var ipanel = Ext.create('PVE.storage.RBDInputPanel', {
136 isCreate: me.isCreate,
137 storageId: me.storageId,
138 nodename: me.nodename,
139 pveceph: me.pveceph
140 });
141
142 Ext.apply(me, {
143 subject: PVE.Utils.format_storage_type(me.pveceph?'pveceph':'rbd'),
144 isAdd: true,
145 items: [ ipanel ]
146 });
147
148 me.callParent();
149
150 if (!me.isCreate) {
151 me.load({
152 success: function(response, options) {
153 var values = response.result.data;
154
155 var ctypes = values.content || '';
156
157 values.content = ctypes.split(',');
158
159 if (values.nodes) {
160 values.nodes = values.nodes.split(',');
161 }
162 values.enable = values.disable ? 0 : 1;
163 ipanel.setValues(values);
164 }
165 });
166 }
167 }
168 });