]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/form/DiskStorageSelector.js
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 setNodename: function(nodename
) {
81 var hdstorage
= me
.getComponent('hdstorage');
82 var hdfilesel
= me
.getComponent('hdimage');
84 hdstorage
.setNodename(nodename
);
85 hdfilesel
.setNodename(nodename
);
88 initComponent: function() {
93 xtype
: 'pveStorageSelector',
96 reference
: 'hdstorage',
97 fieldLabel
: me
.storageLabel
,
98 nodename
: me
.nodename
,
99 storageContent
: me
.storageContent
,
100 autoSelect
: me
.autoSelect
,
101 allowBlank
: me
.allowBlank
,
102 emptyText
: me
.emptyText
,
105 fn
: me
.changeStorage
,
111 xtype
: 'pveFileSelector',
113 reference
: 'hdimage',
115 fieldLabel
: gettext('Disk image'),
116 nodename
: me
.nodename
,
121 xtype
: 'numberfield',
123 reference
: 'disksize',
125 fieldLabel
: gettext('Disk size') + ' (GiB)',
127 disabled
: me
.hideSize
,
131 value
: me
.defaultSize
,
135 xtype
: 'pveDiskFormatSelector',
136 itemId
: 'diskformat',
137 reference
: 'diskformat',
139 fieldLabel
: gettext('Format'),
140 nodename
: me
.nodename
,
142 hidden
: me
.storageContent
=== 'rootdir',