]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/form/DiskStorageSelector.js
2067a6ca859443c9059aa4b9269e8c201e973885
1 Ext
.define('PVE.form.DiskStorageSelector', {
2 extend
: 'Ext.container.Container',
3 alias
: 'widget.pveDiskStorageSelector',
10 // the fieldLabel for the storageselector
11 storageLabel
: gettext('Storage'),
13 // the content to show (e.g., images or rootdir)
14 storageContent
: undefined,
16 // if true, selects the first available storage
22 // hides the selection field
23 // this is always hidden on creation,
24 // and only shown when the storage needs a selection and
25 // hideSelection is not true
26 hideSelection
: undefined,
28 // hides the size field (e.g, for the efi disk dialog)
31 // sets the intial size value
32 // string because else we get a type confusion
35 changeStorage: function(f
, value
) {
37 var formatsel
= me
.getComponent('diskformat');
38 var hdfilesel
= me
.getComponent('hdimage');
39 var hdsizesel
= me
.getComponent('disksize');
41 // initial store load, and reset/deletion of the storage
43 hdfilesel
.setDisabled(true);
44 hdfilesel
.setVisible(false);
46 formatsel
.setDisabled(true);
50 var rec
= f
.store
.getById(value
);
51 // if the storage is not defined, or valid,
52 // we cannot know what to enable/disable
57 var selectformat
= false;
58 if (rec
.data
.format
) {
59 var format
= rec
.data
.format
[0]; // 0 is the formats, 1 the default in the backend
60 delete format
.subvol
; // we never need subvol in the gui
61 selectformat
= (Ext
.Object
.getSize(format
) > 1);
64 var select
= !!rec
.data
.select_existing
&& !me
.hideSelection
;
66 formatsel
.setDisabled(!selectformat
);
67 formatsel
.setValue(selectformat
? 'qcow2' : 'raw');
69 hdfilesel
.setDisabled(!select
);
70 hdfilesel
.setVisible(select
);
72 hdfilesel
.setStorage(value
);
75 hdsizesel
.setDisabled(select
|| me
.hideSize
);
76 hdsizesel
.setVisible(!select
&& !me
.hideSize
);
79 initComponent: function() {
84 xtype
: 'pveStorageSelector',
87 reference
: 'hdstorage',
88 fieldLabel
: me
.storageLabel
,
89 nodename
: me
.nodename
,
90 storageContent
: me
.storageContent
,
91 autoSelect
: me
.autoSelect
,
92 allowBlank
: me
.allowBlank
,
93 emptyText
: me
.emptyText
,
102 xtype
: 'pveFileSelector',
104 reference
: 'hdimage',
106 fieldLabel
: gettext('Disk image'),
107 nodename
: me
.nodename
,
112 xtype
: 'numberfield',
114 reference
: 'disksize',
116 fieldLabel
: gettext('Disk size') + ' (GB)',
118 disabled
: me
.hideSize
,
122 value
: me
.defaultSize
,
126 xtype
: 'pveDiskFormatSelector',
127 itemId
: 'diskformat',
128 reference
: 'diskformat',
130 fieldLabel
: gettext('Format'),
131 nodename
: me
.nodename
,
133 hidden
: me
.storageContent
=== 'rootdir',