]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/qemu/MemoryEdit.js
1 Ext
.define('PVE.qemu.MemoryInputPanel', {
2 extend
: 'Proxmox.panel.InputPanel',
3 alias
: 'widget.pveQemuMemoryPanel',
4 onlineHelp
: 'qm_memory',
8 viewModel
: {}, // inherit data from createWizard if insideWizard
11 xclass
: 'Ext.app.ViewController',
15 afterrender
: 'setMemory',
19 setMemory: function() {
21 let view
= me
.getView(), viewModel
= me
.getViewModel();
22 if (view
.insideWizard
) {
23 let memory
= view
.down('pveMemoryField[name=memory]');
24 // NOTE: we only set memory but that then sets balloon in its change handler
25 if (viewModel
.get('current.ostype') === 'win11') {
26 memory
.setValue('4096');
28 memory
.setValue('2048');
34 onGetValues: function(values
) {
39 res
.memory
= values
.memory
;
40 res
.balloon
= values
.balloon
;
42 if (!values
.ballooning
) {
44 res
.delete = 'shares';
45 } else if (values
.memory
=== values
.balloon
) {
47 res
.delete = 'balloon,shares';
48 } else if (Ext
.isDefined(values
.shares
) && values
.shares
!== "") {
49 res
.shares
= values
.shares
;
51 res
.delete = "shares";
57 initComponent: function() {
63 xtype
: 'pveMemoryField',
64 labelWidth
: labelWidth
,
65 fieldLabel
: gettext('Memory') + ' (MiB)',
67 value
: '512', // better defaults get set via the view controllers afterrender
72 change: function(f
, value
, old
) {
73 var bf
= me
.down('field[name=balloon]');
74 var balloon
= bf
.getValue();
75 bf
.setMaxValue(value
);
76 if (balloon
=== old
) {
87 xtype
: 'pveMemoryField',
90 maxValue
: me
.insideWizard
? 2048 : 512,
91 value
: '512', // better defaults get set (indirectly) via the view controllers afterrender
93 fieldLabel
: gettext('Minimum memory') + ' (MiB)',
95 labelWidth
: labelWidth
,
98 change: function(f
, value
) {
99 var memory
= me
.down('field[name=memory]').getValue();
100 var shares
= me
.down('field[name=shares]');
101 shares
.setDisabled(value
=== memory
);
106 xtype
: 'proxmoxintegerfield',
113 fieldLabel
: gettext('Shares'),
114 labelWidth
: labelWidth
,
116 emptyText
: Proxmox
.Utils
.defaultText
+ ' (1000)',
117 submitEmptyText
: false,
120 xtype
: 'proxmoxcheckbox',
121 labelWidth
: labelWidth
,
124 fieldLabel
: gettext('Ballooning Device'),
126 change: function(f
, value
) {
127 var bf
= me
.down('field[name=balloon]');
128 var shares
= me
.down('field[name=shares]');
129 var memory
= me
.down('field[name=memory]');
130 bf
.setDisabled(!value
);
131 shares
.setDisabled(!value
|| bf
.getValue() === memory
.getValue());
137 if (me
.insideWizard
) {
138 me
.column1
= me
.items
;
139 me
.items
= undefined;
140 me
.advancedColumn1
= me
.advancedItems
;
141 me
.advancedItems
= undefined;
148 Ext
.define('PVE.qemu.MemoryEdit', {
149 extend
: 'Proxmox.window.Edit',
151 initComponent: function() {
156 Ext
.each(me
.hotplug
.split(','), function(el
) {
157 if (el
=== 'memory') {
163 var ipanel
= Ext
.create('PVE.qemu.MemoryInputPanel', {
164 hotplug
: memoryhotplug
,
168 subject
: gettext('Memory'),
170 // uncomment the following to use the async configiguration API
171 // backgroundDelay: 5,
178 success: function(response
, options
) {
179 var data
= response
.result
.data
;
182 ballooning
: data
.balloon
=== 0 ? '0' : '1',
184 memory
: data
.memory
|| '512',
185 balloon
: data
.balloon
> 0 ? data
.balloon
: data
.memory
|| '512',
188 ipanel
.setValues(values
);