]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/qemu/MemoryEdit.js
Rename Wizard Component aliases using camelCase
[pve-manager.git] / www / manager6 / qemu / MemoryEdit.js
1 Ext.define('PVE.qemu.MemoryInputPanel', {
2 extend: 'PVE.panel.InputPanel',
3 alias: 'widget.pveQemuMemoryPanel',
4 onlineHelp: 'chapter-qm.html#_memory',
5
6 insideWizard: false,
7
8 onGetValues: function(values) {
9 var me = this;
10
11 var res;
12
13 if (values.memoryType === 'fixed') {
14 res = { memory: values.memory };
15 res['delete'] = "balloon,shares";
16 } else {
17 res = {
18 memory: values.maxmemory,
19 balloon: values.balloon
20 };
21 if (Ext.isDefined(values.shares) && (values.shares !== "")) {
22 res.shares = values.shares;
23 } else {
24 res['delete'] = "shares";
25 }
26 }
27
28 return res;
29 },
30
31 initComponent : function() {
32 var me = this;
33 var labelWidth = 160;
34
35 var items = [
36 {
37 xtype: 'radiofield',
38 name: 'memoryType',
39 inputValue: 'fixed',
40 boxLabel: gettext('Use fixed size memory'),
41 checked: true,
42 listeners: {
43 change: function(f, value) {
44 if (!me.rendered) {
45 return;
46 }
47 me.down('field[name=memory]').setDisabled(!value);
48 me.down('field[name=maxmemory]').setDisabled(value);
49 me.down('field[name=balloon]').setDisabled(value);
50 me.down('field[name=shares]').setDisabled(value);
51 }
52 }
53 },
54 {
55 xtype: 'pveMemoryField',
56 name: 'memory',
57 hotplug: me.hotplug,
58 fieldLabel: gettext('Memory') + ' (MB)',
59 labelAlign: 'right',
60 labelWidth: labelWidth
61 },
62 {
63 xtype: 'radiofield',
64 name: 'memoryType',
65 inputValue: 'dynamic',
66 boxLabel: gettext('Automatically allocate memory within this range'),
67 listeners: {
68 change: function(f, value) {
69 if (!me.rendered) {
70 return;
71 }
72 }
73 }
74 },
75 {
76 xtype: 'pveMemoryField',
77 name: 'maxmemory',
78 hotplug: me.hotplug,
79 disabled: true,
80 value: '1024',
81 fieldLabel: gettext('Maximum memory') + ' (MB)',
82 labelAlign: 'right',
83 labelWidth: labelWidth,
84 listeners: {
85 change: function(f, value) {
86 var bf = me.down('field[name=balloon]');
87 var balloon = bf.getValue();
88 if (balloon > value) {
89 bf.setValue(value);
90 }
91 bf.setMaxValue(value);
92 }
93 }
94 },
95 {
96 xtype: 'numberfield',
97 name: 'balloon',
98 disabled: true,
99 minValue: 0,
100 maxValue: 512*1024,
101 value: '512',
102 step: 32,
103 fieldLabel: gettext('Minimum memory') + ' (MB)',
104 labelAlign: 'right',
105 labelWidth: labelWidth,
106 allowBlank: false
107 },
108 {
109 xtype: 'numberfield',
110 name: 'shares',
111 disabled: true,
112 minValue: 0,
113 maxValue: 50000,
114 value: '',
115 step: 10,
116 fieldLabel: gettext('Shares'),
117 labelAlign: 'right',
118 labelWidth: labelWidth,
119 allowBlank: true,
120 emptyText: PVE.Utils.defaultText + ' (1000)',
121 submitEmptyText: false
122 }
123 ];
124
125 if (me.insideWizard) {
126 me.column1 = items;
127 } else {
128 me.items = items;
129 }
130
131 me.callParent();
132 }
133 });
134
135 Ext.define('PVE.qemu.MemoryEdit', {
136 extend: 'PVE.window.Edit',
137
138 initComponent : function() {
139 var me = this;
140
141 var memoryhotplug;
142 if(me.hotplug) {
143 Ext.each(me.hotplug.split(','), function(el) {
144 if (el === 'memory') {
145 memoryhotplug = 1;
146 }
147 });
148 }
149
150 var ipanel = Ext.create('PVE.qemu.MemoryInputPanel', {
151 hotplug: memoryhotplug
152 });
153
154 Ext.apply(me, {
155 subject: gettext('Memory'),
156 items: [ ipanel ],
157 // uncomment the following to use the async configiguration API
158 // backgroundDelay: 5,
159 width: 400
160 });
161
162 me.callParent();
163
164 me.load({
165 success: function(response, options) {
166 var data = response.result.data;
167
168 var values = {
169 memory: data.memory,
170 maxmemory: data.memory,
171 balloon: data.balloon,
172 shares: data.shares,
173 memoryType: data.balloon ? 'dynamic' : 'fixed'
174 };
175 ipanel.setValues(values);
176 }
177 });
178 }
179 });