]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/storage/RBDEdit.js
use Checkbox from widget toolkit
[pve-manager.git] / www / manager6 / storage / RBDEdit.js
CommitLineData
c0dee88e
DM
1Ext.define('PVE.storage.RBDInputPanel', {
2 extend: 'PVE.panel.InputPanel',
3
4 onGetValues: function(values) {
5 var me = this;
6
d5e771ce 7 if (me.isCreate) {
c0dee88e
DM
8 values.type = 'rbd';
9 } else {
10 delete values.storage;
11 }
12
177de3de 13 values.disable = values.enable ? 0 : 1;
c0dee88e
DM
14 delete values.enable;
15
16 return values;
17 },
18
19 initComponent : function() {
20 var me = this;
21
3c23c025
DC
22 if (!me.nodename) {
23 me.nodename = 'localhost';
24 }
c0dee88e
DM
25
26 me.column1 = [
27 {
d5e771ce 28 xtype: me.isCreate ? 'textfield' : 'displayfield',
c0dee88e 29 name: 'storage',
c0dee88e
DM
30 value: me.storageId || '',
31 fieldLabel: 'ID',
32 vtype: 'StorageId',
33 allowBlank: false
c0dee88e
DM
34 }
35 ];
36
3c23c025
DC
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,
ec0bd652
DC
75 // while before it was a string
76 /*jslint confusion: true*/
c0dee88e
DM
77 me.column2 = [
78 {
896c0d50 79 xtype: 'proxmoxcheckbox',
c0dee88e
DM
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 {
896c0d50 95 xtype: 'proxmoxcheckbox',
c0dee88e
DM
96 name: 'krbd',
97 uncheckedValue: 0,
ed9896e2 98 fieldLabel: 'KRBD'
c0dee88e
DM
99 }
100 ];
ec0bd652 101 /*jslint confusion: false*/
c0dee88e 102
8b1ee8ff 103 if (me.isCreate) {
c0dee88e 104 me.column2.unshift({
5198365d 105 xtype: 'pveNodeSelector',
c0dee88e
DM
106 name: 'nodes',
107 fieldLabel: gettext('Nodes'),
177de3de 108 emptyText: gettext('All') + ' (' +
c0dee88e
DM
109 gettext('No restrictions') +')',
110 multiSelect: true,
111 autoSelect: false
112 });
113 }
114
115 me.callParent();
116 }
117});
118
119Ext.define('PVE.storage.RBDEdit', {
120 extend: 'PVE.window.Edit',
121
122 initComponent : function() {
123 var me = this;
177de3de 124
d5e771ce 125 me.isCreate = !me.storageId;
c0dee88e 126
d5e771ce 127 if (me.isCreate) {
c0dee88e
DM
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', {
d5e771ce 136 isCreate: me.isCreate,
3c23c025
DC
137 storageId: me.storageId,
138 nodename: me.nodename,
139 pveceph: me.pveceph
c0dee88e
DM
140 });
141
142 Ext.apply(me, {
3c23c025 143 subject: PVE.Utils.format_storage_type(me.pveceph?'pveceph':'rbd'),
c0dee88e
DM
144 isAdd: true,
145 items: [ ipanel ]
146 });
177de3de 147
c0dee88e
DM
148 me.callParent();
149
d5e771ce 150 if (!me.isCreate) {
c0dee88e
DM
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});