]>
git.proxmox.com Git - proxmox-widget-toolkit.git/blob - src/panel/StatusView.js
1 Ext
.define('Proxmox.panel.StatusView', {
2 extend
: 'Ext.panel.Panel',
3 alias
: 'widget.pmxStatusView',
9 title
: gettext('Status'),
11 getRecordValue: function(key
, store
) {
17 if (store
=== undefined) {
18 store
= me
.getStore();
21 var rec
= store
.getById(key
);
23 return rec
.data
.value
;
29 fieldRenderer: function(val
, max
) {
30 if (max
=== undefined) {
34 if (!Ext
.isNumeric(max
) || max
=== 1) {
35 return Proxmox
.Utils
.render_usage(val
);
37 return Proxmox
.Utils
.render_size_usage(val
, max
);
40 fieldCalculator: function(used
, max
) {
41 if (!Ext
.isNumeric(max
) && Ext
.isNumeric(used
)) {
43 } else if (!Ext
.isNumeric(used
)) {
44 /* we come here if the field is from a node
45 * where the records are not mem and maxmem
46 * but mem.used and mem.total
48 if (used
.used
!== undefined &&
49 used
.total
!== undefined) {
50 return used
.used
/used
.total
;
57 updateField: function(field
) {
59 var renderer
= me
.fieldRenderer
;
60 if (Ext
.isFunction(field
.renderer
)) {
61 renderer
= field
.renderer
;
63 if (field
.multiField
=== true) {
64 field
.updateValue(renderer
.call(field
, me
.getStore().getRecord()));
65 } else if (field
.textField
!== undefined) {
66 field
.updateValue(renderer
.call(field
, me
.getRecordValue(field
.textField
)));
67 } else if (field
.valueField
!== undefined) {
68 var used
= me
.getRecordValue(field
.valueField
);
70 var max
= field
.maxField
!== undefined ? me
.getRecordValue(field
.maxField
) : 1;
72 var calculate
= me
.fieldCalculator
;
74 if (Ext
.isFunction(field
.calculate
)) {
75 calculate
= field
.calculate
;
77 field
.updateValue(renderer
.call(field
, used
, max
), calculate(used
, max
));
81 getStore: function() {
84 throw "there is no rstore";
90 updateTitle: function() {
92 me
.setTitle(me
.getRecordValue('name'));
95 updateValues: function(store
, records
, success
) {
97 return; // do not update if store load was not successful
100 var itemsToUpdate
= me
.query('pmxInfoWidget');
102 itemsToUpdate
.forEach(me
.updateField
, me
);
104 me
.updateTitle(store
);
107 initComponent: function() {
111 throw "no rstore given";
115 throw "no title given";
118 Proxmox
.Utils
.monStoreErrors(me
, me
.rstore
);
122 me
.mon(me
.rstore
, 'load', me
.updateValues
, me
);