]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/form/MemoryField.js
jslint: change (x)?x:y to x || y
[pve-manager.git] / www / manager6 / form / MemoryField.js
CommitLineData
9f806bcf
DM
1Ext.define('PVE.form.MemoryField', {
2 extend: 'Ext.form.field.Number',
3 alias: 'widget.pveMemoryField',
4
5 allowBlank: false,
6
7 hotplug: false,
8
9 minValue: 32,
10
11 maxValue: 4178944,
12
13 step: 32,
14
15 value: '512', // qm default
16
17 computeUpDown: function(value) {
18 var me = this;
19
20 if (!me.hotplug) {
21 return { up: value + me.step, down: value - me.step };
22 }
23
24 var dimm_size = 512;
25 var prev_dimm_size = 0;
26 var min_size = 1024;
27 var current_size = min_size;
28 var value_up = min_size;
29 var value_down = min_size;
30 var value_start = min_size;
31
32 var i, j;
33 for (j = 0; j < 9; j++) {
34 for (i = 0; i < 32; i++) {
35 if ((value >= current_size) && (value < (current_size + dimm_size))) {
a764c5f7 36 value_start = current_size;
9f806bcf
DM
37 value_up = current_size + dimm_size;
38 value_down = current_size - ((i === 0) ? prev_dimm_size : dimm_size);
39 }
40 current_size += dimm_size;
41 }
42 prev_dimm_size = dimm_size;
43 dimm_size = dimm_size*2;
44 }
45
46 return { up: value_up, down: value_down, start: value_start };
47 },
48
49 onSpinUp: function() {
50 var me = this;
51 if (!me.readOnly) {
52 var res = me.computeUpDown(me.getValue());
53 me.setValue(Ext.Number.constrain(res.up, me.minValue, me.maxValue));
54 }
55 },
56
57 onSpinDown: function() {
58 var me = this;
59 if (!me.readOnly) {
60 var res = me.computeUpDown(me.getValue());
61 me.setValue(Ext.Number.constrain(res.down, me.minValue, me.maxValue));
62 }
63 },
64
65 initComponent: function() {
66 var me = this;
67
68 if (me.hotplug) {
69 me.minValue = 1024;
70
71 me.on('blur', function(field) {
72 value = me.getValue();
73 var res = me.computeUpDown(value);
74 if (value === res.start || value === res.up || value === res.down) {
75 return;
76 }
77 field.setValue(res.up);
78 });
79 }
80
81 me.callParent();
82 }
83});