]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/storage/LVMEdit.js
1 Ext
.define('PVE.storage.VgSelector', {
2 extend
: 'PVE.form.ComboBoxSetStoreNode',
3 alias
: 'widget.pveVgSelector',
16 emptyText
: PVE
.Utils
.renderNotFound('VGs'),
20 apiSuffix
: '/scan/lvm',
23 showNodeSelector
: true,
25 setNodeName: function(value
) {
27 me
.callParent([value
]);
31 initComponent: function() {
35 me
.nodename
= 'localhost';
38 let store
= Ext
.create('Ext.data.Store', {
39 autoLoad
: {}, // true,
40 fields
: ['vg', 'size', 'free'],
43 url
: `${me.apiBaseUrl}${me.nodename}${me.apiSuffix}`,
47 store
.sort('vg', 'ASC');
57 Ext
.define('PVE.storage.BaseStorageSelector', {
58 extend
: 'Ext.form.field.ComboBox',
59 alias
: 'widget.pveBaseStorageSelector',
61 existingGroupsText
: gettext("Existing volume groups"),
65 valueField
: 'storage',
67 initComponent: function() {
70 let store
= Ext
.create('Ext.data.Store', {
77 fields
: ['storage', 'type', 'content',
80 convert: function(value
, record
) {
81 if (record
.data
.storage
) {
82 return record
.data
.storage
+ " (iSCSI)";
84 return me
.existingGroupsText
;
90 url
: '/api2/json/storage/',
94 store
.loadData([{ storage
: '' }], true);
96 store
.sort('storage', 'ASC');
106 Ext
.define('PVE.storage.LunSelector', {
107 extend
: 'PVE.form.FileSelector',
108 alias
: 'widget.pveStorageLunSelector',
110 nodename
: 'localhost',
111 storageContent
: 'images',
114 initComponent: function() {
117 if (!PVE
.Utils
.isStandaloneNode()) {
118 me
.errorHeight
= 140;
119 Ext
.apply(me
.listConfig
?? {}, {
124 xtype
: "pveStorageScanNodeSelector",
126 fieldLabel
: gettext('Node to scan'),
128 change
: (_field
, value
) => me
.setNodename(value
),
133 emptyText
: me
.listConfig
?.emptyText
?? PVE
.Utils
.renderNotFound(gettext('Volume')),
142 Ext
.define('PVE.storage.LVMInputPanel', {
143 extend
: 'PVE.panel.StorageBase',
144 mixins
: ['Proxmox.Mixin.CBind'],
146 onlineHelp
: 'storage_lvm',
150 xtype
: 'pveBaseStorageSelector',
152 fieldLabel
: gettext('Base storage'),
154 disabled
: '{!isCreate}',
155 hidden
: '{!isCreate}',
159 change: function(f
, value
) {
161 let vgField
= me
.up('inputpanel').lookup('volumeGroupSelector');
162 let vgNameField
= me
.up('inputpanel').lookup('vgName');
163 let baseField
= me
.up('inputpanel').lookup('lunSelector');
165 vgField
.setVisible(!value
);
166 vgField
.setDisabled(!!value
);
168 baseField
.setVisible(!!value
);
169 baseField
.setDisabled(!value
);
170 baseField
.setStorage(value
);
172 vgNameField
.setVisible(!!value
);
173 vgNameField
.setDisabled(!value
);
178 xtype
: 'pveStorageLunSelector',
180 fieldLabel
: gettext('Base volume'),
181 reference
: 'lunSelector',
186 xtype
: 'pveVgSelector',
188 fieldLabel
: gettext('Volume group'),
189 reference
: 'volumeGroupSelector',
191 disabled
: '{!isCreate}',
192 hidden
: '{!isCreate}',
196 nodechanged: function(value
) {
197 this.up('inputpanel').lookup('storageNodeRestriction').setValue(value
);
203 fieldLabel
: gettext('Volume group'),
206 xtype
: (get) => get('isCreate') ? 'textfield' : 'displayfield',
207 hidden
: '{isCreate}',
208 disabled
: '{isCreate}',
214 xtype
: 'pveContentTypeSelector',
215 cts
: ['images', 'rootdir'],
216 fieldLabel
: gettext('Content'),
218 value
: ['images', 'rootdir'],
226 xtype
: 'proxmoxcheckbox',
229 fieldLabel
: gettext('Shared'),
232 'data-qtip': gettext('Enable if the LVM is located on a shared LUN.'),
236 xtype
: 'proxmoxcheckbox',
239 fieldLabel
: gettext('Wipe Removed Volumes'),