]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/storage/LVMEdit.js
1 Ext
.define('PVE.storage.VgSelector', {
2 extend
: 'Ext.form.field.ComboBox',
3 alias
: 'widget.pveVgSelector',
8 initComponent : function() {
12 me
.nodename
= 'localhost';
15 var store
= Ext
.create('Ext.data.Store', {
16 autoLoad
: {}, // true,
17 fields
: [ 'vg', 'size', 'free' ],
20 url
: '/api2/json/nodes/' + me
.nodename
+ '/scan/lvm'
27 loadingText
: gettext('Scanning...'),
35 Ext
.define('PVE.storage.BaseStorageSelector', {
36 extend
: 'Ext.form.field.ComboBox',
37 alias
: 'widget.pveBaseStorageSelector',
39 existingGroupsText
: gettext("Existing volume groups"),
43 valueField
: 'storage',
45 initComponent : function() {
48 var store
= Ext
.create('Ext.data.Store', {
55 fields
: [ 'storage', 'type', 'content',
58 convert: function(value
, record
) {
59 if (record
.data
.storage
) {
60 return record
.data
.storage
+ " (iSCSI)";
62 return me
.existingGroupsText
;
68 url
: '/api2/json/storage/'
72 store
.loadData([{ storage
: '' }], true);
82 Ext
.define('PVE.storage.LVMInputPanel', {
83 extend
: 'PVE.panel.InputPanel',
85 onGetValues: function(values
) {
91 delete values
.storage
;
94 values
.disable
= values
.enable
? 0 : 1;
100 initComponent : function() {
105 xtype
: me
.create
? 'textfield' : 'displayfield',
107 value
: me
.storageId
|| '',
110 submitValue
: !!me
.create
,
115 var vgnameField
= Ext
.createWidget(me
.create
? 'textfield' : 'displayfield', {
118 disabled
: !!me
.create
,
120 fieldLabel
: gettext('Volume group'),
125 var vgField
= Ext
.create('PVE.storage.VgSelector', {
127 fieldLabel
: gettext('Volume group'),
131 var baseField
= Ext
.createWidget('pveFileSelector', {
135 nodename
: 'localhost',
136 storageContent
: 'images',
137 fieldLabel
: gettext('Base volume'),
142 xtype
: 'pveBaseStorageSelector',
144 fieldLabel
: gettext('Base storage'),
147 change: function(f
, value
) {
149 vgnameField
.setVisible(true);
150 vgnameField
.setDisabled(false);
151 vgField
.setVisible(false);
152 vgField
.setDisabled(true);
153 baseField
.setVisible(true);
154 baseField
.setDisabled(false);
156 vgnameField
.setVisible(false);
157 vgnameField
.setDisabled(true);
158 vgField
.setVisible(true);
159 vgField
.setDisabled(false);
160 baseField
.setVisible(false);
161 baseField
.setDisabled(true);
163 baseField
.setStorage(value
);
168 me
.column1
.push(baseField
);
170 me
.column1
.push(vgField
);
173 me
.column1
.push(vgnameField
);
176 xtype
: 'pveContentTypeSelector',
177 cts
: ['images', 'rootdir'],
178 fieldLabel
: gettext('Content'),
180 value
: ['images', 'rootdir'],
187 xtype
: 'pveNodeSelector',
189 fieldLabel
: gettext('Nodes'),
190 emptyText
: gettext('All') + ' (' +
191 gettext('No restrictions') +')',
196 xtype
: 'pvecheckbox',
200 fieldLabel
: gettext('Enable')
203 xtype
: 'pvecheckbox',
206 fieldLabel
: gettext('Shared')
214 Ext
.define('PVE.storage.LVMEdit', {
215 extend
: 'PVE.window.Edit',
217 initComponent : function() {
220 me
.create
= !me
.storageId
;
223 me
.url
= '/api2/extjs/storage';
226 me
.url
= '/api2/extjs/storage/' + me
.storageId
;
230 var ipanel
= Ext
.create('PVE.storage.LVMInputPanel', {
232 storageId
: me
.storageId
236 subject
: PVE
.Utils
.format_storage_type('lvm'),
245 success: function(response
, options
) {
246 var values
= response
.result
.data
;
247 var ctypes
= values
.content
|| '';
249 values
.content
= ctypes
.split(',');
252 values
.nodes
= values
.nodes
.split(',');
254 values
.enable
= values
.disable
? 0 : 1;
255 ipanel
.setValues(values
);