]>
git.proxmox.com Git - pve-manager.git/blob - www/manager/storage/LVMEdit.js
1 Ext
.define('PVE.storage.VgSelector', {
2 extend
: 'Ext.form.field.ComboBox',
3 alias
: 'widget.pveVgSelector',
5 initComponent : function() {
9 me
.nodename
= 'localhost';
12 var store
= Ext
.create('Ext.data.Store', {
13 autoLoad
: {}, // true,
14 fields
: [ 'vg', 'size', 'free' ],
17 url
: '/api2/json/nodes/' + me
.nodename
+ '/scan/lvm'
28 loadingText
: gettext('Scanning...'),
30 // hack: call setHeight to show scroll bars correctly
31 refresh: function(list
) {
32 var lh
= PVE
.Utils
.gridLineHeigh();
33 var count
= store
.getCount();
34 list
.setHeight(lh
* ((count
> 10) ? 10 : count
));
44 Ext
.define('PVE.storage.BaseStorageSelector', {
45 extend
: 'Ext.form.field.ComboBox',
46 alias
: 'widget.pveBaseStorageSelector',
48 existingGroupsText
: gettext("Existing volume groups"),
50 initComponent : function() {
53 var store
= Ext
.create('Ext.data.Store', {
60 fields
: [ 'storage', 'type', 'content',
63 convert: function(value
, record
) {
64 if (record
.data
.storage
) {
65 return record
.data
.storage
+ " (iSCSI)";
67 return me
.existingGroupsText
;
73 url
: '/api2/json/storage/'
77 store
.loadData([{ storage
: '' }], true);
84 valueField
: 'storage',
92 Ext
.define('PVE.storage.LVMInputPanel', {
93 extend
: 'PVE.panel.InputPanel',
95 onGetValues: function(values
) {
100 values
.content
= 'images';
102 delete values
.storage
;
105 values
.disable
= values
.enable
? 0 : 1;
106 delete values
.enable
;
111 initComponent : function() {
116 xtype
: me
.create
? 'textfield' : 'displayfield',
118 height
: 22, // hack: set same height as text fields
119 value
: me
.storageId
|| '',
122 submitValue
: !!me
.create
,
127 var vgnameField
= Ext
.createWidget(me
.create
? 'textfield' : 'displayfield', {
128 height
: 22, // hack: set same height as text fields
131 disabled
: !!me
.create
,
133 fieldLabel
: gettext('Volume group'),
138 var vgField
= Ext
.create('PVE.storage.VgSelector', {
140 fieldLabel
: gettext('Volume group'),
144 var baseField
= Ext
.createWidget('pveFileSelector', {
148 nodename
: 'localhost',
149 storageContent
: 'images',
150 fieldLabel
: gettext('Base volume'),
155 xtype
: 'pveBaseStorageSelector',
157 fieldLabel
: gettext('Base storage'),
160 change: function(f
, value
) {
162 vgnameField
.setVisible(true);
163 vgnameField
.setDisabled(false);
164 vgField
.setVisible(false);
165 vgField
.setDisabled(true);
166 baseField
.setVisible(true);
167 baseField
.setDisabled(false);
169 vgnameField
.setVisible(false);
170 vgnameField
.setDisabled(true);
171 vgField
.setVisible(true);
172 vgField
.setDisabled(false);
173 baseField
.setVisible(false);
174 baseField
.setDisabled(true);
176 baseField
.setStorage(value
);
181 me
.column1
.push(baseField
);
183 me
.column1
.push(vgField
);
186 me
.column1
.push(vgnameField
);
190 xtype
: 'PVE.form.NodeSelector',
192 fieldLabel
: gettext('Nodes'),
193 emptyText
: gettext('All') + ' (' +
194 gettext('No restrictions') +')',
199 xtype
: 'pvecheckbox',
203 fieldLabel
: gettext('Enable')
206 xtype
: 'pvecheckbox',
209 fieldLabel
: gettext('Shared')
217 Ext
.define('PVE.storage.LVMEdit', {
218 extend
: 'PVE.window.Edit',
220 initComponent : function() {
223 me
.create
= !me
.storageId
;
226 me
.url
= '/api2/extjs/storage';
229 me
.url
= '/api2/extjs/storage/' + me
.storageId
;
233 var ipanel
= Ext
.create('PVE.storage.LVMInputPanel', {
235 storageId
: me
.storageId
239 subject
: gettext('LVM group'),
248 success: function(response
, options
) {
249 var values
= response
.result
.data
;
251 values
.nodes
= values
.nodes
.split(',');
253 values
.enable
= values
.disable
? 0 : 1;
254 ipanel
.setValues(values
);