]>
Commit | Line | Data |
---|---|---|
c0dee88e DM |
1 | Ext.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 | ||
119 | Ext.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 | }); |