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