aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/js/RrdGraph.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/RrdGraph.js')
-rw-r--r--js/RrdGraph.js65
1 files changed, 31 insertions, 34 deletions
diff --git a/js/RrdGraph.js b/js/RrdGraph.js
index 55a131d..7171a9c 100644
--- a/js/RrdGraph.js
+++ b/js/RrdGraph.js
@@ -88,7 +88,7 @@ var RrdGraphDesc = function (graph)
88 88
89 /** ** **/ 89 /** ** **/
90 var args = []; // FIXME other way ¿? 90 var args = []; // FIXME other way ¿?
91 var type = arguments[1] 91 var type = arguments[1];
92 args[0] = arguments[0]; 92 args[0] = arguments[0];
93 for(var i = 2; i < arguments.length; i++) args[i-1] = arguments[i]; 93 for(var i = 2; i < arguments.length; i++) args[i-1] = arguments[i];
94 94
@@ -707,7 +707,7 @@ var RrdGraph = function (gfx, data)
707{ 707{
708 this.gfx = gfx; /* graphics object */ 708 this.gfx = gfx; /* graphics object */
709 this.data = data; /* fetch data object */ 709 this.data = data; /* fetch data object */
710 this.data_need_fetch = [] /* List of data that need to be fetched */ 710 this.data_need_fetch = []; /* List of data that need to be fetched */
711 711
712 this.minval = Number.NaN; /* extreme values in the data */ 712 this.minval = Number.NaN; /* extreme values in the data */
713 this.maxval = Number.NaN; 713 this.maxval = Number.NaN;
@@ -1197,13 +1197,13 @@ RrdGraph.prototype.print_calc = function()
1197 case RrdGraphDesc.GF_HRULE: 1197 case RrdGraphDesc.GF_HRULE:
1198 if (isNaN(this.gdes[i].yrule)) { /* we must set this here or the legend printer can not decide to print the legend */ 1198 if (isNaN(this.gdes[i].yrule)) { /* we must set this here or the legend printer can not decide to print the legend */
1199 this.gdes[i].yrule = this.gdes[vidx].vf.val; 1199 this.gdes[i].yrule = this.gdes[vidx].vf.val;
1200 }; 1200 }
1201 graphelement = 1; 1201 graphelement = 1;
1202 break; 1202 break;
1203 case RrdGraphDesc.GF_VRULE: 1203 case RrdGraphDesc.GF_VRULE:
1204 if (this.gdes[i].xrule === 0) { /* again ... the legend printer needs it */ 1204 if (this.gdes[i].xrule === 0) { /* again ... the legend printer needs it */
1205 this.gdes[i].xrule = this.gdes[vidx].vf.when; 1205 this.gdes[i].xrule = this.gdes[vidx].vf.when;
1206 }; 1206 }
1207 graphelement = 1; 1207 graphelement = 1;
1208 break; 1208 break;
1209 case RrdGraphDesc.GF_COMMENT: 1209 case RrdGraphDesc.GF_COMMENT:
@@ -1216,7 +1216,6 @@ RrdGraph.prototype.print_calc = function()
1216 break; 1216 break;
1217 case RrdGraphDesc.GF_STACK: 1217 case RrdGraphDesc.GF_STACK:
1218 throw new RrdGraphError("STACK should already be turned into LINE or AREA here"); 1218 throw new RrdGraphError("STACK should already be turned into LINE or AREA here");
1219 break;
1220 } 1219 }
1221 } 1220 }
1222 return graphelement; 1221 return graphelement;
@@ -1287,7 +1286,7 @@ RrdGraph.prototype.reduce_data = function(gdes, cur_step)
1287 newval = gdes.data[srcptr + i*gdes.ds_cnt + col]; 1286 newval = gdes.data[srcptr + i*gdes.ds_cnt + col];
1288 break; 1287 break;
1289 } 1288 }
1290 } 1289 }
1291 } 1290 }
1292 1291
1293 if (validval === 0) { 1292 if (validval === 0) {
@@ -1316,8 +1315,8 @@ RrdGraph.prototype.reduce_data = function(gdes, cur_step)
1316 row_cnt -= reduce_factor; 1315 row_cnt -= reduce_factor;
1317 } 1316 }
1318 if (end_offset) { 1317 if (end_offset) {
1319 for (col = 0; col < gdes.ds_cnt; col++) 1318 for (col = 0; col < gdes.ds_cnt; col++)
1320 gdes.data[dstptr++] = Number.NaN; 1319 gdes.data[dstptr++] = Number.NaN;
1321 } 1320 }
1322}; 1321};
1323 1322
@@ -1396,7 +1395,7 @@ RrdGraph.prototype.data_fetch_async = function ()
1396 } 1395 }
1397 } 1396 }
1398 this.data_need_fetch.push(0); 1397 this.data_need_fetch.push(0);
1399 } 1398 }
1400 1399
1401 for (var i = 0, gdes_c = this.gdes.length; i < gdes_c; i++) { 1400 for (var i = 0, gdes_c = this.gdes.length; i < gdes_c; i++) {
1402 if (this.data_need_fetch[i] == 0) { 1401 if (this.data_need_fetch[i] == 0) {
@@ -1619,7 +1618,6 @@ RrdGraph.prototype.data_proc = function()
1619 break; 1618 break;
1620 case RrdGraphDesc.GF_STACK: 1619 case RrdGraphDesc.GF_STACK:
1621 throw new RrdGraphError("STACK should already be turned into LINE or AREA here"); 1620 throw new RrdGraphError("STACK should already be turned into LINE or AREA here");
1622 break;
1623 default: 1621 default:
1624 break; 1622 break;
1625 } 1623 }
@@ -1699,7 +1697,7 @@ RrdGraph.prototype.leg_place = function (calc_width)
1699 } 1697 }
1700 1698
1701 if (this.gdes[i].legend != null) { 1699 if (this.gdes[i].legend != null) {
1702 this.gdes[i].legend = this.gdes[i].legend.replace(/\\t/gi, "\t") /* turn \\t into tab */ 1700 this.gdes[i].legend = this.gdes[i].legend.replace(/\\t/gi, "\t"); /* turn \\t into tab */
1703 leg_cc = this.gdes[i].legend.length; 1701 leg_cc = this.gdes[i].legend.length;
1704 } else { 1702 } else {
1705 leg_cc = 0; 1703 leg_cc = 0;
@@ -1863,7 +1861,7 @@ RrdGraph.prototype.horizontal_log_grid = function ()
1863 [ 1.0, 2.0, 4.0, 6.0, 8.0, 10., 0.0, 0.0, 0.0, 0.0 ], 1861 [ 1.0, 2.0, 4.0, 6.0, 8.0, 10., 0.0, 0.0, 0.0, 0.0 ],
1864 [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10. ], 1862 [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10. ],
1865 [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] /* last line */ 1863 [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] /* last line */
1866 ]; 1864 ];
1867 var i, j, val_exp, min_exp; 1865 var i, j, val_exp, min_exp;
1868 var nex; /* number of decades in data */ 1866 var nex; /* number of decades in data */
1869 var logscale; /* scale in logarithmic space */ 1867 var logscale; /* scale in logarithmic space */
@@ -1885,7 +1883,7 @@ RrdGraph.prototype.horizontal_log_grid = function ()
1885 /* major spacing for less dynamic data */ 1883 /* major spacing for less dynamic data */
1886 do { 1884 do {
1887 mid++; 1885 mid++;
1888 for (i = 0; yloglab[mid][i + 1] < 10.0; i++) {}; 1886 for (i = 0; yloglab[mid][i + 1] < 10.0; i++) ;
1889 mspac = logscale * Math.log(10.0 / yloglab[mid][i])/Math.LN10; 1887 mspac = logscale * Math.log(10.0 / yloglab[mid][i])/Math.LN10;
1890 } while (mspac > 1.56 * this.TEXT.LEGEND.size && yloglab[mid][0] > 0); // FIXME 2->1.56 ?? 1888 } while (mspac > 1.56 * this.TEXT.LEGEND.size && yloglab[mid][0] > 0); // FIXME 2->1.56 ??
1891 if (mid) mid--; 1889 if (mid) mid--;
@@ -1966,7 +1964,7 @@ RrdGraph.prototype.horizontal_log_grid = function ()
1966 if (mid < 4 && exfrac === 1) { /* minor grid */ 1964 if (mid < 4 && exfrac === 1) { /* minor grid */
1967 if (flab === 0) { /* find first and last minor line behind current major line * i is the first line and j tha last */ 1965 if (flab === 0) { /* find first and last minor line behind current major line * i is the first line and j tha last */
1968 min_exp = val_exp - 1; 1966 min_exp = val_exp - 1;
1969 for (i = 1; yloglab[mid][i] < 10.0; i++) {}; 1967 for (i = 1; yloglab[mid][i] < 10.0; i++) ;
1970 i = yloglab[mid][i - 1] + 1; 1968 i = yloglab[mid][i - 1] + 1;
1971 j = 10; 1969 j = 10;
1972 } else { 1970 } else {
@@ -2002,7 +2000,7 @@ RrdGraph.prototype.horizontal_log_grid = function ()
2002 if (mid < 4 && exfrac === 1) { /* draw minor lines after highest major line */ 2000 if (mid < 4 && exfrac === 1) { /* draw minor lines after highest major line */
2003 if (flab === 0) { /* find first and last minor line below current major line * i is the first line and j tha last */ 2001 if (flab === 0) { /* find first and last minor line below current major line * i is the first line and j tha last */
2004 min_exp = val_exp - 1; 2002 min_exp = val_exp - 1;
2005 for (i = 1; yloglab[mid][i] < 10.0; i++) {}; 2003 for (i = 1; yloglab[mid][i] < 10.0; i++) ;
2006 i = yloglab[mid][i - 1] + 1; 2004 i = yloglab[mid][i - 1] + 1;
2007 j = 10; 2005 j = 10;
2008 } else { 2006 } else {
@@ -2386,20 +2384,20 @@ RrdGraph.prototype.grid_paint = function()
2386 this.GRC.FONT, this.TEXT.TITLE, this.tabwidth, 0.0, RrdGraph.GFX_H_CENTER, RrdGraph.GFX_V_TOP, this.title); 2384 this.GRC.FONT, this.TEXT.TITLE, this.tabwidth, 0.0, RrdGraph.GFX_H_CENTER, RrdGraph.GFX_V_TOP, this.title);
2387 /* rrdtool 'logo' */ 2385 /* rrdtool 'logo' */
2388 if (!this.no_rrdtool_tag){ 2386 if (!this.no_rrdtool_tag){
2389 var color = this.parse_color(this.GRC.FONT); 2387 var color = this.parse_color(this.GRC.FONT);
2390 color[3] = 0.3; 2388 color[3] = 0.3;
2391 var water_color = this.color2rgba(color); 2389 var water_color = this.color2rgba(color);
2392 var xpos = this.legendposition === RrdGraph.LEGEND_POS_EAST ? this.xOriginLegendY : this.ximg - 4; 2390 var xpos = this.legendposition === RrdGraph.LEGEND_POS_EAST ? this.xOriginLegendY : this.ximg - 4;
2393 this.gfx.text(xpos, 5, water_color, this.TEXT.WATERMARK, this.tabwidth, 2391 this.gfx.text(xpos, 5, water_color, this.TEXT.WATERMARK, this.tabwidth,
2394 -90, RrdGraph.GFX_H_LEFT, RrdGraph.GFX_V_TOP, "RRDTOOL / TOBI OETIKER"); 2392 -90, RrdGraph.GFX_H_LEFT, RrdGraph.GFX_V_TOP, "RRDTOOL / TOBI OETIKER");
2395 } 2393 }
2396 /* graph watermark */ 2394 /* graph watermark */
2397 if (this.watermark) { 2395 if (this.watermark) {
2398 var color = this.parse_color(this.GRC.FONT) 2396 var color = this.parse_color(this.GRC.FONT);
2399 color[3] = 0.3; 2397 color[3] = 0.3;
2400 var water_color = this.color2rgba(color); 2398 var water_color = this.color2rgba(color);
2401 this.gfx.text(this.ximg / 2, this.yimg - 6, water_color, this.TEXT.WATERMARK , this.tabwidth, 0, 2399 this.gfx.text(this.ximg / 2, this.yimg - 6, water_color, this.TEXT.WATERMARK , this.tabwidth, 0,
2402 RrdGraph.GFX_H_CENTER, RrdGraph.GFX_V_BOTTOM, this.watermark); 2400 RrdGraph.GFX_H_CENTER, RrdGraph.GFX_V_BOTTOM, this.watermark);
2403 } 2401 }
2404 /* graph labels */ 2402 /* graph labels */
2405 if (!(this.no_legend) && !(this.only_graph)) { 2403 if (!(this.no_legend) && !(this.only_graph)) {
@@ -2664,11 +2662,11 @@ RrdGraph.prototype.graph_paint_init = function()
2664// this.gdes[i].end_orig = this.end; 2662// this.gdes[i].end_orig = this.end;
2665 } 2663 }
2666 2664
2667} 2665};
2668 2666
2669RrdGraph.prototype.graph_paint_draw = function() 2667RrdGraph.prototype.graph_paint_draw = function()
2670{ 2668{
2671 var areazero = 0.0 2669 var areazero = 0.0;
2672 var lastgdes = null; 2670 var lastgdes = null;
2673 2671
2674 if (this.data_calc() === -1) 2672 if (this.data_calc() === -1)
@@ -2773,7 +2771,7 @@ RrdGraph.prototype.graph_paint_draw = function()
2773 this.gfx.moveTo(x, y); 2771 this.gfx.moveTo(x, y);
2774 x = ii + this.xorigin; 2772 x = ii + this.xorigin;
2775 y = last_y; 2773 y = last_y;
2776 this.gfx.lineTo(x, y) 2774 this.gfx.lineTo(x, y);
2777 } else { 2775 } else {
2778 var x = ii - 1 + this.xorigin; 2776 var x = ii - 1 + this.xorigin;
2779 var y = this.ytr(this.gdes[i].p_data[ii - 1]); 2777 var y = this.ytr(this.gdes[i].p_data[ii - 1]);
@@ -2886,7 +2884,6 @@ RrdGraph.prototype.graph_paint_draw = function()
2886 break; 2884 break;
2887 case RrdGraphDesc.GF_STACK: 2885 case RrdGraphDesc.GF_STACK:
2888 throw new RrdGraphError("STACK should already be turned into LINE or AREA here"); 2886 throw new RrdGraphError("STACK should already be turned into LINE or AREA here");
2889 break;
2890 } 2887 }
2891 } 2888 }
2892//cairo_reset_clip(this.cr); 2889//cairo_reset_clip(this.cr);
@@ -2920,16 +2917,16 @@ RrdGraph.prototype.graph_paint_draw = function()
2920 2917
2921RrdGraph.prototype.graph_paint = function () 2918RrdGraph.prototype.graph_paint = function ()
2922{ 2919{
2923 this.graph_paint_init() 2920 this.graph_paint_init();
2924 if (this.data_fetch() === -1) 2921 if (this.data_fetch() === -1)
2925 return -1; 2922 return -1;
2926 return this.graph_paint_draw() 2923 return this.graph_paint_draw();
2927}; 2924};
2928 2925
2929RrdGraph.prototype.graph_paint_async = function () 2926RrdGraph.prototype.graph_paint_async = function ()
2930{ 2927{
2931 this.graph_paint_init() 2928 this.graph_paint_init();
2932 this.data_fetch_async() 2929 this.data_fetch_async();
2933}; 2930};
2934 2931
2935RrdGraph.prototype.find_var = function(key) 2932RrdGraph.prototype.find_var = function(key)