]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/data/ResourceStore.js
remove trailing whitespaces
[pve-manager.git] / www / manager6 / data / ResourceStore.js
CommitLineData
4053fc86
DM
1Ext.define('PVE.data.ResourceStore', {
2 extend: 'PVE.data.UpdateStore',
3 singleton: true,
4
5 findVMID: function(vmid) {
6 var me = this, i;
0be88ae1 7
4053fc86
DM
8 return (me.findExact('vmid', parseInt(vmid, 10)) >= 0);
9 },
0be88ae1 10
4053fc86
DM
11 constructor: function(config) {
12 // fixme: how to avoid those warnings
13 /*jslint confusion: true */
14
15 var me = this;
16
17 config = config || {};
18
19 var field_defaults = {
20 type: {
21 header: gettext('Type'),
cfb353c8 22 type: 'string',
4053fc86
DM
23 renderer: PVE.Utils.render_resource_type,
24 sortable: true,
25 hideable: false,
b1d8e73d 26 width: 100
4053fc86
DM
27 },
28 id: {
29 header: 'ID',
cfb353c8 30 type: 'string',
4053fc86
DM
31 hidden: true,
32 sortable: true,
33 width: 80
34 },
35 running: {
36 header: gettext('Online'),
37 type: 'boolean',
38 renderer: PVE.Utils.format_boolean,
39 hidden: true,
40 convert: function(value, record) {
41 var info = record.data;
42 if (info.type === 'qemu' || info.type === 'lxc' || info.type === 'node') {
43 return (Ext.isNumeric(info.uptime) && (info.uptime > 0));
44 } else {
45 return false;
46 }
47 }
48 },
49 text: {
50 header: gettext('Description'),
cfb353c8 51 type: 'string',
4053fc86
DM
52 sortable: true,
53 width: 200,
54 convert: function(value, record) {
55 var info = record.data;
56 var text;
57
58 if (value) {
59 return value;
60 }
61
62 if (info.type === 'node') {
63 text = info.node;
64 } else if (info.type === 'pool') {
65 text = info.pool;
66 } else if (info.type === 'storage') {
67 text = info.storage + ' (' + info.node + ')';
68 } else if (info.type === 'qemu' || info.type === 'lxc') {
69 text = String(info.vmid);
70 if (info.name) {
71 text += " (" + info.name + ')';
72 }
73 } else {
74 text = info.id;
75 }
76 return text;
77 }
78 },
79 vmid: {
80 header: 'VMID',
81 type: 'integer',
82 hidden: true,
83 sortable: true,
84 width: 80
85 },
86 name: {
87 header: gettext('Name'),
88 hidden: true,
89 sortable: true,
cfb353c8 90 type: 'string'
4053fc86
DM
91 },
92 disk: {
93 header: gettext('Disk usage'),
94 type: 'integer',
95 renderer: PVE.Utils.render_disk_usage,
96 sortable: true,
728f1b97
DC
97 width: 100,
98 hidden: true,
99 },
100 diskuse: {
101 header: gettext('Disk usage') + " %",
102 type: 'number',
103 sortable: true,
104 renderer: PVE.Utils.render_disk_usage_percent,
105 width: 100,
106 calculate: PVE.Utils.calculate_disk_usage,
107 sortType: 'asFloat',
4053fc86
DM
108 },
109 maxdisk: {
110 header: gettext('Disk size'),
111 type: 'integer',
112 renderer: PVE.Utils.render_size,
113 sortable: true,
114 hidden: true,
115 width: 100
116 },
117 mem: {
118 header: gettext('Memory usage'),
119 type: 'integer',
120 renderer: PVE.Utils.render_mem_usage,
121 sortable: true,
728f1b97
DC
122 hidden: true,
123 width: 100
124 },
125 memuse: {
126 header: gettext('Memory usage') + " %",
127 type: 'number',
128 renderer: PVE.Utils.render_mem_usage_percent,
129 calculate: PVE.Utils.calculate_mem_usage,
130 sortType: 'asFloat',
131 sortable: true,
4053fc86
DM
132 width: 100
133 },
134 maxmem: {
135 header: gettext('Memory size'),
136 type: 'integer',
137 renderer: PVE.Utils.render_size,
138 hidden: true,
139 sortable: true,
140 width: 100
141 },
142 cpu: {
143 header: gettext('CPU usage'),
144 type: 'float',
145 renderer: PVE.Utils.render_cpu,
146 sortable: true,
147 width: 100
148 },
149 maxcpu: {
150 header: gettext('maxcpu'),
151 type: 'integer',
152 hidden: true,
153 sortable: true,
154 width: 60
155 },
156 diskread: {
157 header: gettext('Total Disk Read'),
158 type: 'integer',
159 hidden: true,
160 sortable: true,
161 renderer: PVE.Utils.format_size,
162 width: 100
163 },
164 diskwrite: {
165 header: gettext('Total Disk Write'),
166 type: 'integer',
167 hidden: true,
168 sortable: true,
169 renderer: PVE.Utils.format_size,
170 width: 100
171 },
172 netin: {
173 header: gettext('Total NetIn'),
174 type: 'integer',
175 hidden: true,
176 sortable: true,
177 renderer: PVE.Utils.format_size,
178 width: 100
179 },
180 netout: {
181 header: gettext('Total NetOut'),
182 type: 'integer',
183 hidden: true,
184 sortable: true,
185 renderer: PVE.Utils.format_size,
186 width: 100
187 },
188 template: {
189 header: gettext('Template'),
190 type: 'integer',
191 hidden: true,
192 sortable: true,
193 width: 60
194 },
195 uptime: {
196 header: gettext('Uptime'),
197 type: 'integer',
198 renderer: PVE.Utils.render_uptime,
199 sortable: true,
200 width: 110
0be88ae1 201 },
4053fc86
DM
202 node: {
203 header: gettext('Node'),
cfb353c8 204 type: 'string',
4053fc86
DM
205 hidden: true,
206 sortable: true,
207 width: 110
208 },
209 storage: {
210 header: gettext('Storage'),
cfb353c8 211 type: 'string',
4053fc86
DM
212 hidden: true,
213 sortable: true,
214 width: 110
215 },
216 pool: {
217 header: gettext('Pool'),
cfb353c8 218 type: 'string',
4053fc86
DM
219 hidden: true,
220 sortable: true,
221 width: 110
222 }
223 };
224
225 var fields = [];
226 var fieldNames = [];
227 Ext.Object.each(field_defaults, function(key, value) {
728f1b97 228 if (!Ext.isDefined(value.convert) && !Ext.isDefined(value.calculate)) {
4053fc86
DM
229 fields.push({name: key, type: value.type});
230 fieldNames.push(key);
0be88ae1 231 } else if (key === 'text' || key === 'running') {
4053fc86
DM
232 fields.push({name: key, type: value.type, convert: value.convert});
233 fieldNames.push(key);
728f1b97
DC
234 } else {
235 value.name = key;
236 fields.push(value);
237 }
4053fc86
DM
238 });
239
240 Ext.define('PVEResources', {
241 extend: "Ext.data.Model",
242 fields: fields,
243 proxy: {
244 type: 'pve',
245 url: '/api2/json/cluster/resources'
246 }
247 });
248
249 Ext.define('PVETree', {
250 extend: "Ext.data.Model",
251 fields: fields,
252 proxy: { type: 'memory' }
253 });
254
255 Ext.apply(config, {
256 storeid: 'PVEResources',
257 model: 'PVEResources',
4053fc86
DM
258 defaultColums: function() {
259 var res = [];
260 Ext.Object.each(field_defaults, function(field, info) {
261 var fi = Ext.apply({ dataIndex: field }, info);
262 res.push(fi);
263 });
264 return res;
265 },
266 fieldNames: fieldNames
267 });
268
269 me.callParent([config]);
270 }
271});