]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/lxc/ResourceEdit.js
update shipped appliance info index
[pve-manager.git] / www / manager6 / lxc / ResourceEdit.js
1 var labelWidth = 120;
2
3 Ext.define('PVE.lxc.MemoryEdit', {
4 extend: 'Proxmox.window.Edit',
5
6 initComponent: function() {
7 var me = this;
8
9 Ext.apply(me, {
10 subject: gettext('Memory'),
11 items: Ext.create('PVE.lxc.MemoryInputPanel'),
12 });
13
14 me.callParent();
15
16 me.load();
17 },
18 });
19
20
21 Ext.define('PVE.lxc.CPUEdit', {
22 extend: 'Proxmox.window.Edit',
23 alias: 'widget.pveLxcCPUEdit',
24
25 viewModel: {
26 data: {
27 cgroupMode: 2,
28 },
29 },
30
31 initComponent: function() {
32 let me = this;
33 me.getViewModel().set('cgroupMode', me.cgroupMode);
34
35 Ext.apply(me, {
36 subject: gettext('CPU'),
37 items: Ext.create('PVE.lxc.CPUInputPanel'),
38 });
39
40 me.callParent();
41
42 me.load();
43 },
44 });
45
46 // The view model of the parent shoul contain a 'cgroupMode' variable (or params for v2 are used).
47 Ext.define('PVE.lxc.CPUInputPanel', {
48 extend: 'Proxmox.panel.InputPanel',
49 alias: 'widget.pveLxcCPUInputPanel',
50
51 onlineHelp: 'pct_cpu',
52
53 insideWizard: false,
54
55 viewModel: {
56 formulas: {
57 cpuunitsDefault: (get) => get('cgroupMode') === 1 ? 1024 : 100,
58 cpuunitsMax: (get) => get('cgroupMode') === 1 ? 500000 : 10000,
59 },
60 },
61
62 onGetValues: function(values) {
63 let me = this;
64 let cpuunitsDefault = me.getViewModel().get('cpuunitsDefault');
65
66 PVE.Utils.delete_if_default(values, 'cpulimit', '0', me.insideWizard);
67 PVE.Utils.delete_if_default(values, 'cpuunits', `${cpuunitsDefault}`, me.insideWizard);
68
69 return values;
70 },
71
72 advancedColumn1: [
73 {
74 xtype: 'numberfield',
75 name: 'cpulimit',
76 minValue: 0,
77 value: '',
78 step: 1,
79 fieldLabel: gettext('CPU limit'),
80 allowBlank: true,
81 emptyText: gettext('unlimited'),
82 },
83 ],
84
85 advancedColumn2: [
86 {
87 xtype: 'proxmoxintegerfield',
88 name: 'cpuunits',
89 fieldLabel: gettext('CPU units'),
90 value: '',
91 minValue: 8,
92 maxValue: '10000',
93 emptyText: '100',
94 bind: {
95 emptyText: '{cpuunitsDefault}',
96 maxValue: '{cpuunitsMax}',
97 },
98 labelWidth: labelWidth,
99 deleteEmpty: true,
100 allowBlank: true,
101 },
102 ],
103
104 initComponent: function() {
105 var me = this;
106
107 me.column1 = [
108 {
109 xtype: 'proxmoxintegerfield',
110 name: 'cores',
111 minValue: 1,
112 maxValue: 8192,
113 value: me.insideWizard ? 1 : '',
114 fieldLabel: gettext('Cores'),
115 allowBlank: true,
116 deleteEmpty: true,
117 emptyText: gettext('unlimited'),
118 },
119 ];
120
121 me.callParent();
122 },
123 });
124
125 Ext.define('PVE.lxc.MemoryInputPanel', {
126 extend: 'Proxmox.panel.InputPanel',
127 alias: 'widget.pveLxcMemoryInputPanel',
128
129 onlineHelp: 'pct_memory',
130
131 insideWizard: false,
132
133 initComponent: function() {
134 var me = this;
135
136 var items = [
137 {
138 xtype: 'proxmoxintegerfield',
139 name: 'memory',
140 minValue: 16,
141 value: '512',
142 step: 32,
143 fieldLabel: gettext('Memory') + ' (MiB)',
144 labelWidth: labelWidth,
145 allowBlank: false,
146 },
147 {
148 xtype: 'proxmoxintegerfield',
149 name: 'swap',
150 minValue: 0,
151 value: '512',
152 step: 32,
153 fieldLabel: gettext('Swap') + ' (MiB)',
154 labelWidth: labelWidth,
155 allowBlank: false,
156 },
157 ];
158
159 if (me.insideWizard) {
160 me.column1 = items;
161 } else {
162 me.items = items;
163 }
164
165 me.callParent();
166 },
167 });