]>
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
) {
18 if (store
=== undefined) {
19 store
= me
.getStore();
22 let rec
= store
.getById(key
);
24 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 let 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 let used
= me
.getRecordValue(field
.valueField
);
69 let max
= field
.maxField
!== undefined ? me
.getRecordValue(field
.maxField
) : 1;
71 let calculate
= me
.fieldCalculator
;
72 if (Ext
.isFunction(field
.calculate
)) {
73 calculate
= field
.calculate
;
75 field
.updateValue(renderer
.call(field
, used
, max
), calculate(used
, max
));
79 getStore: function() {
83 throw "there is no rstore";
89 updateTitle: function() {
91 me
.setTitle(me
.getRecordValue('name'));
94 updateValues: function(store
, records
, success
) {
98 return; // do not update if store load was not successful
100 me
.query('pmxInfoWidget').forEach(me
.updateField
, me
);
101 me
.query('pveInfoWidget').forEach(me
.updateField
, me
);
103 me
.updateTitle(store
);
106 initComponent: function() {
110 throw "no rstore given";
113 throw "no title given";
116 Proxmox
.Utils
.monStoreErrors(me
, me
.rstore
);
120 me
.mon(me
.rstore
, 'load', me
.updateValues
, me
);