]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/panel/RRDChart.js
1 Ext
.define('PVE.widget.RRDChart', {
2 extend
: 'Ext.chart.CartesianChart',
3 alias
: 'widget.pveRRDChart',
8 interactions
: 'crosszoom',
13 renderer
: 'leftAxisRenderer',
23 // we set this that all graphs have same width
27 afterrender
: 'onAfterRender'
56 convertToUnits: function(value
) {
57 var units
= ['', 'k','M','G','T', 'P'];
59 while(value
>= 1000 && si
< (units
.length
-1)){
63 // javascript floating point weirdness
64 value
= Ext
.Number
.correctFloat(value
);
66 // limit to 2 decimal points
67 value
= Ext
.util
.Format
.number(value
, "0.##");
69 return value
.toString() + " " + units
[si
];
72 leftAxisRenderer: function(axis
, label
, layoutContext
) {
74 return me
.convertToUnits(label
);
77 onSeriesTooltipRender: function (tooltip
, record
, item
) {
81 if (me
.percentArr
.indexOf(item
.field
) != -1) {
83 } else if (me
.bytesArr
.indexOf(item
.field
) != -1) {
85 } else if (me
.bytespersArr
.indexOf(item
.field
) != -1) {
89 var prefix
= item
.field
;
90 if (me
.fieldTitles
&& me
.fieldTitles
[me
.fields
.indexOf(item
.field
)]) {
91 prefix
= me
.fieldTitles
[me
.fields
.indexOf(item
.field
)];
93 tooltip
.setHtml(prefix
+ ': ' + this.convertToUnits(record
.get(item
.field
)) + suffix
+
94 '<br>' + new Date(record
.get('time')));
97 onAfterRender: function(){
100 // add correct label for left axis
102 if (me
.percentArr
.indexOf(me
.fields
[0]) != -1) {
104 } else if (me
.bytesArr
.indexOf(me
.fields
[0]) != -1) {
106 } else if (me
.bytespersArr
.indexOf(me
.fields
[0]) != -1) {
107 axisTitle
= "Bytes/s";
109 me
.axes
[0].setTitle(axisTitle
);
111 // add a series for each field we get
112 me
.fields
.forEach(function(item
, index
){
114 if (me
.fieldTitles
&& me
.fieldTitles
[index
]) {
115 title
= me
.fieldTitles
[index
];
141 renderer
: 'onSeriesTooltipRender'
147 initComponent: function() {
151 throw "cannot work without store";
155 throw "cannot work without fields";