]>
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'
24 store
.sort('vg', 'ASC');
29 loadingText
: gettext('Scanning...')
37 Ext
.define('PVE.storage.BaseStorageSelector', {
38 extend
: 'Ext.form.field.ComboBox',
39 alias
: 'widget.pveBaseStorageSelector',
41 existingGroupsText
: gettext("Existing volume groups"),
45 valueField
: 'storage',
47 initComponent : function() {
50 var store
= Ext
.create('Ext.data.Store', {
57 fields
: [ 'storage', 'type', 'content',
60 convert: function(value
, record
) {
61 if (record
.data
.storage
) {
62 return record
.data
.storage
+ " (iSCSI)";
64 return me
.existingGroupsText
;
70 url
: '/api2/json/storage/'
74 store
.loadData([{ storage
: '' }], true);
76 store
.sort('storage', 'ASC');
86 Ext
.define('PVE.storage.LVMInputPanel', {
87 extend
: 'PVE.panel.InputPanel',
89 onGetValues: function(values
) {
95 delete values
.storage
;
98 values
.disable
= values
.enable
? 0 : 1;
104 initComponent : function() {
109 xtype
: me
.isCreate
? 'textfield' : 'displayfield',
111 value
: me
.storageId
|| '',
114 submitValue
: !!me
.isCreate
,
119 var vgnameField
= Ext
.createWidget(me
.isCreate
? 'textfield' : 'displayfield', {
121 hidden
: !!me
.isCreate
,
122 disabled
: !!me
.isCreate
,
124 fieldLabel
: gettext('Volume group'),
129 var vgField
= Ext
.create('PVE.storage.VgSelector', {
131 fieldLabel
: gettext('Volume group'),
135 var baseField
= Ext
.createWidget('pveFileSelector', {
139 nodename
: 'localhost',
140 storageContent
: 'images',
141 fieldLabel
: gettext('Base volume'),
146 xtype
: 'pveBaseStorageSelector',
148 fieldLabel
: gettext('Base storage'),
151 change: function(f
, value
) {
153 vgnameField
.setVisible(true);
154 vgnameField
.setDisabled(false);
155 vgField
.setVisible(false);
156 vgField
.setDisabled(true);
157 baseField
.setVisible(true);
158 baseField
.setDisabled(false);
160 vgnameField
.setVisible(false);
161 vgnameField
.setDisabled(true);
162 vgField
.setVisible(true);
163 vgField
.setDisabled(false);
164 baseField
.setVisible(false);
165 baseField
.setDisabled(true);
167 baseField
.setStorage(value
);
172 me
.column1
.push(baseField
);
174 me
.column1
.push(vgField
);
177 me
.column1
.push(vgnameField
);
179 // here value is an array,
180 // while before it was a string
181 /*jslint confusion: true*/
183 xtype
: 'pveContentTypeSelector',
184 cts
: ['images', 'rootdir'],
185 fieldLabel
: gettext('Content'),
187 value
: ['images', 'rootdir'],
191 /*jslint confusion: false*/
195 xtype
: 'pveNodeSelector',
197 fieldLabel
: gettext('Nodes'),
198 emptyText
: gettext('All') + ' (' +
199 gettext('No restrictions') +')',
204 xtype
: 'proxmoxcheckbox',
208 fieldLabel
: gettext('Enable')
211 xtype
: 'proxmoxcheckbox',
214 fieldLabel
: gettext('Shared')
222 Ext
.define('PVE.storage.LVMEdit', {
223 extend
: 'Proxmox.window.Edit',
225 initComponent : function() {
228 me
.isCreate
= !me
.storageId
;
231 me
.url
= '/api2/extjs/storage';
234 me
.url
= '/api2/extjs/storage/' + me
.storageId
;
238 var ipanel
= Ext
.create('PVE.storage.LVMInputPanel', {
239 isCreate
: me
.isCreate
,
240 storageId
: me
.storageId
244 subject
: PVE
.Utils
.format_storage_type('lvm'),
253 success: function(response
, options
) {
254 var values
= response
.result
.data
;
255 var ctypes
= values
.content
|| '';
257 values
.content
= ctypes
.split(',');
260 values
.nodes
= values
.nodes
.split(',');
262 values
.enable
= values
.disable
? 0 : 1;
263 ipanel
.setValues(values
);