diff options
| author | Manuel Luis SanmartĂn Rozada | 2015-04-03 19:02:59 +0200 |
|---|---|---|
| committer | Pim van den Berg | 2015-06-22 11:01:48 +0200 |
| commit | e8a4d43c2a55d0a2ebd87b8e6c83d82ac5950291 (patch) | |
| tree | d397e3389986a1690a817fc008583804504c602a | |
| parent | jsrrdgraph: Rewrite data a graph commands parser. (diff) | |
| download | apt-panopticon_cgp-e8a4d43c2a55d0a2ebd87b8e6c83d82ac5950291.zip apt-panopticon_cgp-e8a4d43c2a55d0a2ebd87b8e6c83d82ac5950291.tar.gz apt-panopticon_cgp-e8a4d43c2a55d0a2ebd87b8e6c83d82ac5950291.tar.bz2 apt-panopticon_cgp-e8a4d43c2a55d0a2ebd87b8e6c83d82ac5950291.tar.xz | |
jsrrdgraph: Add support for dashes
| -rw-r--r-- | js/RrdGfxCanvas.js | 21 | ||||
| -rw-r--r-- | js/RrdGfxPdf.js | 37 | ||||
| -rw-r--r-- | js/RrdGfxSvg.js | 25 | ||||
| -rw-r--r-- | js/RrdGraph.js | 58 |
4 files changed, 127 insertions, 14 deletions
diff --git a/js/RrdGfxCanvas.js b/js/RrdGfxCanvas.js index 324b655..6ba71bb 100644 --- a/js/RrdGfxCanvas.js +++ b/js/RrdGfxCanvas.js | |||
| @@ -28,6 +28,9 @@ var RrdGfxCanvas = function(canvasId) | |||
| 28 | { | 28 | { |
| 29 | this.canvas = document.getElementById(canvasId); | 29 | this.canvas = document.getElementById(canvasId); |
| 30 | this.ctx = this.canvas.getContext('2d'); | 30 | this.ctx = this.canvas.getContext('2d'); |
| 31 | this.dash = false; | ||
| 32 | this.dash_offset = null; | ||
| 33 | this.dash_array = null; | ||
| 31 | }; | 34 | }; |
| 32 | 35 | ||
| 33 | RrdGfxCanvas.prototype.size = function (width, height) | 36 | RrdGfxCanvas.prototype.size = function (width, height) |
| @@ -38,7 +41,22 @@ RrdGfxCanvas.prototype.size = function (width, height) | |||
| 38 | 41 | ||
| 39 | RrdGfxCanvas.prototype.set_dash = function (dashes, n, offset) | 42 | RrdGfxCanvas.prototype.set_dash = function (dashes, n, offset) |
| 40 | { | 43 | { |
| 44 | this.dash = true; | ||
| 45 | this.dash_array = dashes; | ||
| 46 | this.dash_offset = offset; | ||
| 47 | }; | ||
| 41 | 48 | ||
| 49 | RrdGfxCanvas.prototype._set_dash = function () | ||
| 50 | { | ||
| 51 | if (this.dash_array != undefined && this.dash_array.length > 0) { | ||
| 52 | this.ctx.setLineDash(this.dash_array); | ||
| 53 | if (this.dash_offset > 0) { | ||
| 54 | this.ctx.lineDashOffset = this.dash_offset; | ||
| 55 | } | ||
| 56 | } | ||
| 57 | this.dash = false; | ||
| 58 | this.dash_array = null; | ||
| 59 | this.dash_offset = 0; | ||
| 42 | }; | 60 | }; |
| 43 | 61 | ||
| 44 | RrdGfxCanvas.prototype.line = function (X0, Y0, X1, Y1, width, color) | 62 | RrdGfxCanvas.prototype.line = function (X0, Y0, X1, Y1, width, color) |
| @@ -58,6 +76,7 @@ RrdGfxCanvas.prototype.line = function (X0, Y0, X1, Y1, width, color) | |||
| 58 | this.ctx.save(); | 76 | this.ctx.save(); |
| 59 | this.ctx.lineWidth = width; | 77 | this.ctx.lineWidth = width; |
| 60 | this.ctx.strokeStyle = color; | 78 | this.ctx.strokeStyle = color; |
| 79 | if (this.dash) this._set_dash(); | ||
| 61 | this.ctx.beginPath(); | 80 | this.ctx.beginPath(); |
| 62 | this.ctx.moveTo(X0, Y0); | 81 | this.ctx.moveTo(X0, Y0); |
| 63 | this.ctx.lineTo(X1, Y1); | 82 | this.ctx.lineTo(X1, Y1); |
| @@ -136,6 +155,7 @@ RrdGfxCanvas.prototype.rectangle = function (X0, Y0, X1, Y1, width, style) | |||
| 136 | 155 | ||
| 137 | this.ctx.save(); | 156 | this.ctx.save(); |
| 138 | this.ctx.beginPath(); | 157 | this.ctx.beginPath(); |
| 158 | if (this.dash) this._set_dash(); | ||
| 139 | this.ctx.lineWidth = width; | 159 | this.ctx.lineWidth = width; |
| 140 | this.ctx.moveTo(X0, Y0); | 160 | this.ctx.moveTo(X0, Y0); |
| 141 | this.ctx.lineTo(X1, Y0); | 161 | this.ctx.lineTo(X1, Y0); |
| @@ -179,6 +199,7 @@ RrdGfxCanvas.prototype.stroke_begin = function (width, style) | |||
| 179 | { | 199 | { |
| 180 | this.ctx.save(); | 200 | this.ctx.save(); |
| 181 | this.ctx.beginPath(); | 201 | this.ctx.beginPath(); |
| 202 | if (this.dash) this._set_dash(); | ||
| 182 | this.ctx.lineWidth = width; | 203 | this.ctx.lineWidth = width; |
| 183 | this.ctx.strokeStyle = style; | 204 | this.ctx.strokeStyle = style; |
| 184 | this.ctx.lineCap = 'round'; | 205 | this.ctx.lineCap = 'round'; |
diff --git a/js/RrdGfxPdf.js b/js/RrdGfxPdf.js index cbc552f..7cde098 100644 --- a/js/RrdGfxPdf.js +++ b/js/RrdGfxPdf.js | |||
| @@ -81,7 +81,7 @@ var RrdGfxPdf = function (orientation, unit, size) | |||
| 81 | this.CoreFonts = ['courier', 'helvetica', 'times', 'symbol', 'zapfdingbats']; | 81 | this.CoreFonts = ['courier', 'helvetica', 'times', 'symbol', 'zapfdingbats']; |
| 82 | // Scale factor (number of points in user unit) | 82 | // Scale factor (number of points in user unit) |
| 83 | if(unit === 'pt') | 83 | if(unit === 'pt') |
| 84 | this.k = 1; | 84 | this.k = 1; |
| 85 | else if(unit === 'mm') | 85 | else if(unit === 'mm') |
| 86 | this.k = 72/25.4; | 86 | this.k = 72/25.4; |
| 87 | else if(unit === 'cm') | 87 | else if(unit === 'cm') |
| @@ -129,6 +129,10 @@ var RrdGfxPdf = function (orientation, unit, size) | |||
| 129 | this.SetDisplayMode('default'); | 129 | this.SetDisplayMode('default'); |
| 130 | // Set default PDF version number | 130 | // Set default PDF version number |
| 131 | this.PDFVersion = '1.3'; | 131 | this.PDFVersion = '1.3'; |
| 132 | |||
| 133 | this.dash = false; | ||
| 134 | this.dash_array = null; | ||
| 135 | this.dash_offset = null; | ||
| 132 | }; | 136 | }; |
| 133 | 137 | ||
| 134 | RrdGfxPdf.CORE_FONTS= { | 138 | RrdGfxPdf.CORE_FONTS= { |
| @@ -182,6 +186,31 @@ RrdGfxPdf.prototype.size = function (width, height) | |||
| 182 | 186 | ||
| 183 | RrdGfxPdf.prototype.set_dash = function (dashes, n, offset) | 187 | RrdGfxPdf.prototype.set_dash = function (dashes, n, offset) |
| 184 | { | 188 | { |
| 189 | this.dash = true; | ||
| 190 | this.dash_array = dashes; | ||
| 191 | this.dash_offset = offset; | ||
| 192 | }; | ||
| 193 | |||
| 194 | RrdGfxPdf.prototype._set_dash = function () | ||
| 195 | { | ||
| 196 | this.dash = true; | ||
| 197 | |||
| 198 | if (this.dash_array != undefined && this.dash_array.length > 0) { | ||
| 199 | for (var n=0; n < this.dash_array.length; n++) { | ||
| 200 | this.dash_array[n] = this.dash_array[n] * this.k; | ||
| 201 | } | ||
| 202 | this.dash_array = this.dash_array.join(' '); | ||
| 203 | |||
| 204 | if (this.dash_offset == 0) { | ||
| 205 | this._out('['+this.dash_array+'] 0 d'); | ||
| 206 | } else { | ||
| 207 | this.dash_offset = this.dash_offset * this.k; | ||
| 208 | this._out('['+this.dash_array+'] '+this.dash_offset+' d'); | ||
| 209 | } | ||
| 210 | } | ||
| 211 | this.dash = false; | ||
| 212 | this.dash_array = null; | ||
| 213 | this.dash_offset = 0; | ||
| 185 | }; | 214 | }; |
| 186 | 215 | ||
| 187 | RrdGfxPdf.prototype.line = function (X0, Y0, X1, Y1, width, color) | 216 | RrdGfxPdf.prototype.line = function (X0, Y0, X1, Y1, width, color) |
| @@ -190,6 +219,8 @@ RrdGfxPdf.prototype.line = function (X0, Y0, X1, Y1, width, color) | |||
| 190 | this._setLineWidth(width); | 219 | this._setLineWidth(width); |
| 191 | var rgba = this.parse_color(color); | 220 | var rgba = this.parse_color(color); |
| 192 | this._setDrawColor(rgba[0], rgba[1], rgba[2]); | 221 | this._setDrawColor(rgba[0], rgba[1], rgba[2]); |
| 222 | if (this.dash) | ||
| 223 | this._set_dash(); | ||
| 193 | this._moveTo(X0, Y0); | 224 | this._moveTo(X0, Y0); |
| 194 | this._lineTo(X1, Y1); | 225 | this._lineTo(X1, Y1); |
| 195 | this._stroke(); | 226 | this._stroke(); |
| @@ -215,6 +246,8 @@ RrdGfxPdf.prototype.rectangle = function (X0, Y0, X1, Y1, width, style) | |||
| 215 | this._setLineWidth(width); | 246 | this._setLineWidth(width); |
| 216 | var rgba = this.parse_color(style); | 247 | var rgba = this.parse_color(style); |
| 217 | this._setDrawColor(rgba[0], rgba[1], rgba[2]); | 248 | this._setDrawColor(rgba[0], rgba[1], rgba[2]); |
| 249 | if (this.dash) | ||
| 250 | this._set_dash(); | ||
| 218 | this._moveTo(X0, Y0); | 251 | this._moveTo(X0, Y0); |
| 219 | this._lineTo(X1, Y0); | 252 | this._lineTo(X1, Y0); |
| 220 | this._lineTo(X1, Y1); | 253 | this._lineTo(X1, Y1); |
| @@ -250,6 +283,8 @@ RrdGfxPdf.prototype.stroke_begin = function (width, style) | |||
| 250 | this._setLineWidth(width); | 283 | this._setLineWidth(width); |
| 251 | var rgba = this.parse_color(style); | 284 | var rgba = this.parse_color(style); |
| 252 | this._setDrawColor(rgba[0], rgba[1], rgba[2]); | 285 | this._setDrawColor(rgba[0], rgba[1], rgba[2]); |
| 286 | if (this.dash) | ||
| 287 | this._set_dash(); | ||
| 253 | this._out('0 J'); // line cap | 288 | this._out('0 J'); // line cap |
| 254 | this._out('0 j'); // line join | 289 | this._out('0 j'); // line join |
| 255 | }; | 290 | }; |
diff --git a/js/RrdGfxSvg.js b/js/RrdGfxSvg.js index ffc0071..927cb14 100644 --- a/js/RrdGfxSvg.js +++ b/js/RrdGfxSvg.js | |||
| @@ -31,6 +31,9 @@ var RrdGfxSvg = function(svgId) { | |||
| 31 | this.path = null; | 31 | this.path = null; |
| 32 | this.path_color = null; | 32 | this.path_color = null; |
| 33 | this.path_width = null; | 33 | this.path_width = null; |
| 34 | this.dash = false; | ||
| 35 | this.dash_offset = null; | ||
| 36 | this.dash_array = null; | ||
| 34 | }; | 37 | }; |
| 35 | 38 | ||
| 36 | RrdGfxSvg.prototype.size = function (width, height) | 39 | RrdGfxSvg.prototype.size = function (width, height) |
| @@ -45,8 +48,24 @@ RrdGfxSvg.prototype.size = function (width, height) | |||
| 45 | 48 | ||
| 46 | RrdGfxSvg.prototype.set_dash = function (dashes, n, offset) | 49 | RrdGfxSvg.prototype.set_dash = function (dashes, n, offset) |
| 47 | { | 50 | { |
| 51 | this.dash = true; | ||
| 52 | this.dash_array = dashes; | ||
| 53 | this.dash_offset = offset; | ||
| 48 | }; | 54 | }; |
| 49 | 55 | ||
| 56 | RrdGfxSvg.prototype._set_dash = function (shape) | ||
| 57 | { | ||
| 58 | if (this.dash_array != undefined && this.dash_array.length > 0) { | ||
| 59 | shape.setAttributeNS(null, "stroke-dasharray", this.dash_array.join(',')); | ||
| 60 | if (this.dash_offset > 0) { | ||
| 61 | shape.setAttributeNS(null, "stroke-dashoffset", this.dash_offset); | ||
| 62 | } | ||
| 63 | } | ||
| 64 | this.dash = false; | ||
| 65 | this.dash_array = null; | ||
| 66 | this.dash_offset = 0; | ||
| 67 | } | ||
| 68 | |||
| 50 | RrdGfxSvg.prototype.line = function (X0, Y0, X1, Y1, width, color) | 69 | RrdGfxSvg.prototype.line = function (X0, Y0, X1, Y1, width, color) |
| 51 | { | 70 | { |
| 52 | var shape = document.createElementNS(this.svgns, "line"); | 71 | var shape = document.createElementNS(this.svgns, "line"); |
| @@ -62,6 +81,8 @@ RrdGfxSvg.prototype.line = function (X0, Y0, X1, Y1, width, color) | |||
| 62 | shape.setAttributeNS(null, "y2", Y1); | 81 | shape.setAttributeNS(null, "y2", Y1); |
| 63 | shape.setAttributeNS(null, "stroke-width", width); | 82 | shape.setAttributeNS(null, "stroke-width", width); |
| 64 | shape.setAttributeNS(null, "stroke", color); | 83 | shape.setAttributeNS(null, "stroke", color); |
| 84 | if (this.dash) | ||
| 85 | this._set_dash(shape); | ||
| 65 | 86 | ||
| 66 | this.svg.appendChild(shape); | 87 | this.svg.appendChild(shape); |
| 67 | }; | 88 | }; |
| @@ -100,6 +121,8 @@ RrdGfxSvg.prototype.rectangle = function (X0, Y0, X1, Y1, width, style) | |||
| 100 | shape.setAttributeNS(null, "stroke-width", width); | 121 | shape.setAttributeNS(null, "stroke-width", width); |
| 101 | shape.setAttributeNS(null, "stroke", style); | 122 | shape.setAttributeNS(null, "stroke", style); |
| 102 | shape.setAttributeNS(null, "fill", "none"); | 123 | shape.setAttributeNS(null, "fill", "none"); |
| 124 | if (this.dash) | ||
| 125 | this._set_dash(shape); | ||
| 103 | 126 | ||
| 104 | this.svg.appendChild(shape); | 127 | this.svg.appendChild(shape); |
| 105 | }; | 128 | }; |
| @@ -157,6 +180,8 @@ RrdGfxSvg.prototype.stroke_end = function () | |||
| 157 | shape.setAttributeNS(null, "stroke-width", this.path_width); | 180 | shape.setAttributeNS(null, "stroke-width", this.path_width); |
| 158 | shape.setAttributeNS(null, "stroke-linecap", 'round'); | 181 | shape.setAttributeNS(null, "stroke-linecap", 'round'); |
| 159 | shape.setAttributeNS(null, "stroke-linejoin", 'round'); | 182 | shape.setAttributeNS(null, "stroke-linejoin", 'round'); |
| 183 | if (this.dash) | ||
| 184 | this._set_dash(shape); | ||
| 160 | 185 | ||
| 161 | this.svg.appendChild(shape); | 186 | this.svg.appendChild(shape); |
| 162 | }; | 187 | }; |
diff --git a/js/RrdGraph.js b/js/RrdGraph.js index c2457c9..25823aa 100644 --- a/js/RrdGraph.js +++ b/js/RrdGraph.js | |||
| @@ -36,7 +36,7 @@ RrdGraphDescError.prototype = new Error(); | |||
| 36 | * RrdGraphDesc | 36 | * RrdGraphDesc |
| 37 | * @constructor | 37 | * @constructor |
| 38 | */ | 38 | */ |
| 39 | var RrdGraphDesc = function (graph) | 39 | var RrdGraphDesc = function (graph) |
| 40 | { | 40 | { |
| 41 | this.gf = null; /* graphing function */ | 41 | this.gf = null; /* graphing function */ |
| 42 | this.stack = false; /* boolean */ | 42 | this.stack = false; /* boolean */ |
| @@ -164,7 +164,7 @@ RrdGraphDesc.TXA_RIGHT = 1; | |||
| 164 | RrdGraphDesc.TXA_CENTER = 2; | 164 | RrdGraphDesc.TXA_CENTER = 2; |
| 165 | RrdGraphDesc.TXA_JUSTIFIED = 3; | 165 | RrdGraphDesc.TXA_JUSTIFIED = 3; |
| 166 | 166 | ||
| 167 | RrdGraphDesc.cf_conv = function (str) | 167 | RrdGraphDesc.cf_conv = function (str) |
| 168 | { | 168 | { |
| 169 | switch (str){ | 169 | switch (str){ |
| 170 | case 'AVERAGE': return RrdGraphDesc.CF_AVERAGE; | 170 | case 'AVERAGE': return RrdGraphDesc.CF_AVERAGE; |
| @@ -279,7 +279,7 @@ RrdGraphDesc.prototype.fshift = function (graph, vname, offset) | |||
| 279 | this.legend = ''; | 279 | this.legend = ''; |
| 280 | }; | 280 | }; |
| 281 | 281 | ||
| 282 | RrdGraphDesc.prototype.line = function (graph, width, value, color, legend, stack) | 282 | RrdGraphDesc.prototype.line = function (graph, width, value, color, legend, stack, dashes, dash_offset) |
| 283 | { | 283 | { |
| 284 | this.gf = RrdGraphDesc.GF_LINE; | 284 | this.gf = RrdGraphDesc.GF_LINE; |
| 285 | this.vname = value; | 285 | this.vname = value; |
| @@ -287,10 +287,20 @@ RrdGraphDesc.prototype.line = function (graph, width, value, color, legend, stac | |||
| 287 | this.linewidth = width; | 287 | this.linewidth = width; |
| 288 | this.col = color; | 288 | this.col = color; |
| 289 | if (legend === undefined) this.legend = ''; | 289 | if (legend === undefined) this.legend = ''; |
| 290 | else if (legend.length === 0) this.legend = ''; | ||
| 290 | else this.legend = ' '+legend; | 291 | else this.legend = ' '+legend; |
| 291 | if (stack === undefined) this.stack = false; | 292 | if (stack === undefined) this.stack = false; |
| 292 | else this.stack = stack; | 293 | else this.stack = stack; |
| 293 | this.format = this.legend; | 294 | this.format = this.legend; |
| 295 | |||
| 296 | if (dashes != undefined) { | ||
| 297 | this.dash = true; | ||
| 298 | this.p_dashes = dashes; | ||
| 299 | this.ndash = dashes.length; | ||
| 300 | } | ||
| 301 | if (dash_offset !=undefined) { | ||
| 302 | this.offset = dash_offset; | ||
| 303 | } | ||
| 294 | }; | 304 | }; |
| 295 | 305 | ||
| 296 | RrdGraphDesc.prototype.area = function (graph, value, color, legend, stack) | 306 | RrdGraphDesc.prototype.area = function (graph, value, color, legend, stack) |
| @@ -300,6 +310,7 @@ RrdGraphDesc.prototype.area = function (graph, value, color, legend, stack) | |||
| 300 | this.vidx = graph.find_var(value); | 310 | this.vidx = graph.find_var(value); |
| 301 | this.col = color; | 311 | this.col = color; |
| 302 | if (legend === undefined) this.legend = ''; | 312 | if (legend === undefined) this.legend = ''; |
| 313 | else if (legend.length === 0) this.legend = ''; | ||
| 303 | else this.legend = ' '+legend; | 314 | else this.legend = ' '+legend; |
| 304 | if (stack === undefined) this.stack = false; | 315 | if (stack === undefined) this.stack = false; |
| 305 | else this.stack = stack; | 316 | else this.stack = stack; |
| @@ -315,6 +326,7 @@ RrdGraphDesc.prototype.tick = function (graph, vname, color, fraction, legend) | |||
| 315 | if (fraction !== undefined) | 326 | if (fraction !== undefined) |
| 316 | this.yrule = fraction; | 327 | this.yrule = fraction; |
| 317 | if (legend === undefined) this.legend = ''; | 328 | if (legend === undefined) this.legend = ''; |
| 329 | else if (legend.length === 0) this.legend = ''; | ||
| 318 | else this.legend = ' '+legend; | 330 | else this.legend = ' '+legend; |
| 319 | this.format = this.legend; | 331 | this.format = this.legend; |
| 320 | }; | 332 | }; |
| @@ -372,16 +384,26 @@ RrdGraphDesc.prototype.textalign = function (graph, align) | |||
| 372 | } | 384 | } |
| 373 | }; | 385 | }; |
| 374 | 386 | ||
| 375 | RrdGraphDesc.prototype.vrule = function (graph, time, color, legend) | 387 | RrdGraphDesc.prototype.vrule = function (graph, time, color, legend, dashes, dash_offset) |
| 376 | { | 388 | { |
| 377 | this.gf = RrdGraphDesc.GF_VRULE; | 389 | this.gf = RrdGraphDesc.GF_VRULE; |
| 378 | this.xrule = time; | 390 | this.xrule = time; |
| 379 | this.col = color; | 391 | this.col = color; |
| 380 | if (legend === undefined) this.legend = ''; | 392 | if (legend === undefined) this.legend = ''; |
| 393 | else if (legend.length === 0) this.legend = ''; | ||
| 381 | else this.legend = ' '+legend; | 394 | else this.legend = ' '+legend; |
| 395 | |||
| 396 | if (dashes != undefined) { | ||
| 397 | this.dash = true; | ||
| 398 | this.p_dashes = dashes; | ||
| 399 | this.ndash = dashes.length; | ||
| 400 | } | ||
| 401 | if (dash_offset !=undefined) { | ||
| 402 | this.offset = dash_offset; | ||
| 403 | } | ||
| 382 | }; | 404 | }; |
| 383 | 405 | ||
| 384 | RrdGraphDesc.prototype.hrule = function (graph, value, color, legend) | 406 | RrdGraphDesc.prototype.hrule = function (graph, value, color, legend, dashes, dash_offset) |
| 385 | { | 407 | { |
| 386 | this.gf = RrdGraphDesc.GF_HRULE; | 408 | this.gf = RrdGraphDesc.GF_HRULE; |
| 387 | this.vidx = graph.find_var(value); | 409 | this.vidx = graph.find_var(value); |
| @@ -389,7 +411,17 @@ RrdGraphDesc.prototype.hrule = function (graph, value, color, legend) | |||
| 389 | this.yrule = value; | 411 | this.yrule = value; |
| 390 | this.col = color; | 412 | this.col = color; |
| 391 | if (legend === undefined) this.legend = ''; | 413 | if (legend === undefined) this.legend = ''; |
| 414 | else if (legend.length === 0) this.legend = ''; | ||
| 392 | else this.legend = ' '+legend; | 415 | else this.legend = ' '+legend; |
| 416 | |||
| 417 | if (dashes != undefined) { | ||
| 418 | this.dash = true; | ||
| 419 | this.p_dashes = dashes; | ||
| 420 | this.ndash = dashes.length; | ||
| 421 | } | ||
| 422 | if (dash_offset !=undefined) { | ||
| 423 | this.offset = dash_offset; | ||
| 424 | } | ||
| 393 | }; | 425 | }; |
| 394 | 426 | ||
| 395 | /** | 427 | /** |
| @@ -823,10 +855,10 @@ var RrdGraph = function (gfx, data) | |||
| 823 | FONT: 'rgba(0, 0, 0, 1.0)', | 855 | FONT: 'rgba(0, 0, 0, 1.0)', |
| 824 | ARROW: 'rgba(127, 31, 31, 1.0)', | 856 | ARROW: 'rgba(127, 31, 31, 1.0)', |
| 825 | AXIS: 'rgba(31, 31, 31, 1.0)', | 857 | AXIS: 'rgba(31, 31, 31, 1.0)', |
| 826 | FRAME: 'rgba(0, 0, 0, 1.0)' | 858 | FRAME: 'rgba(0, 0, 0, 1.0)' |
| 827 | }; | 859 | }; |
| 828 | 860 | ||
| 829 | this.xlab = [ | 861 | this.xlab = [ |
| 830 | {minsec: 0, length: 0, gridtm: RrdGraph.TMT_SECOND, gridst: 30, mgridtm: RrdGraph.TMT_MINUTE, mgridst: 5, labtm: RrdGraph.TMT_MINUTE, labst: 5, precis: 0, stst: '%H:%M' } , | 862 | {minsec: 0, length: 0, gridtm: RrdGraph.TMT_SECOND, gridst: 30, mgridtm: RrdGraph.TMT_MINUTE, mgridst: 5, labtm: RrdGraph.TMT_MINUTE, labst: 5, precis: 0, stst: '%H:%M' } , |
| 831 | {minsec: 2, length: 0, gridtm: RrdGraph.TMT_MINUTE, gridst: 1, mgridtm: RrdGraph.TMT_MINUTE, mgridst: 5, labtm: RrdGraph.TMT_MINUTE, labst: 5, precis: 0, stst: '%H:%M' } , | 863 | {minsec: 2, length: 0, gridtm: RrdGraph.TMT_MINUTE, gridst: 1, mgridtm: RrdGraph.TMT_MINUTE, mgridst: 5, labtm: RrdGraph.TMT_MINUTE, labst: 5, precis: 0, stst: '%H:%M' } , |
| 832 | {minsec: 5, length: 0, gridtm: RrdGraph.TMT_MINUTE, gridst: 2, mgridtm: RrdGraph.TMT_MINUTE, mgridst: 10, labtm: RrdGraph.TMT_MINUTE, labst: 10, precis: 0, stst: '%H:%M' } , | 864 | {minsec: 5, length: 0, gridtm: RrdGraph.TMT_MINUTE, gridst: 2, mgridtm: RrdGraph.TMT_MINUTE, mgridst: 10, labtm: RrdGraph.TMT_MINUTE, labst: 10, precis: 0, stst: '%H:%M' } , |
| @@ -2963,9 +2995,9 @@ RrdGraph.prototype.gdes_add_shift = function (vname, offset) | |||
| 2963 | this.gdes.push(new RrdGraphDesc(this, RrdGraphDesc.GF_SHIFT, vname, offset)); | 2995 | this.gdes.push(new RrdGraphDesc(this, RrdGraphDesc.GF_SHIFT, vname, offset)); |
| 2964 | }; | 2996 | }; |
| 2965 | 2997 | ||
| 2966 | RrdGraph.prototype.gdes_add_line = function (width, value, color, legend, stack) | 2998 | RrdGraph.prototype.gdes_add_line = function (width, value, color, legend, stack, dashes, dash_offset) |
| 2967 | { | 2999 | { |
| 2968 | this.gdes.push(new RrdGraphDesc(this, RrdGraphDesc.GF_LINE, width, value, color, legend, stack)); | 3000 | this.gdes.push(new RrdGraphDesc(this, RrdGraphDesc.GF_LINE, width, value, color, legend, stack, dashes, dash_offset)); |
| 2969 | }; | 3001 | }; |
| 2970 | 3002 | ||
| 2971 | RrdGraph.prototype.gdes_add_area = function (value, color, legend, stack) | 3003 | RrdGraph.prototype.gdes_add_area = function (value, color, legend, stack) |
| @@ -2993,14 +3025,14 @@ RrdGraph.prototype.gdes_add_textalign = function (align) | |||
| 2993 | this.gdes.push(new RrdGraphDesc(this, RrdGraphDesc.GF_TEXTALIGN, align)); | 3025 | this.gdes.push(new RrdGraphDesc(this, RrdGraphDesc.GF_TEXTALIGN, align)); |
| 2994 | }; | 3026 | }; |
| 2995 | 3027 | ||
| 2996 | RrdGraph.prototype.gdes_add_vrule = function (time, color, legend) | 3028 | RrdGraph.prototype.gdes_add_vrule = function (time, color, legend, dashes, dash_offset) |
| 2997 | { | 3029 | { |
| 2998 | this.gdes.push(new RrdGraphDesc(this, RrdGraphDesc.GF_VRULE, time, color, legend)); | 3030 | this.gdes.push(new RrdGraphDesc(this, RrdGraphDesc.GF_VRULE, time, color, legend, dashes, dash_offset)); |
| 2999 | }; | 3031 | }; |
| 3000 | 3032 | ||
| 3001 | RrdGraph.prototype.gdes_add_hrule = function (value, color, legend) | 3033 | RrdGraph.prototype.gdes_add_hrule = function (value, color, legend, dashes, dash_offset) |
| 3002 | { | 3034 | { |
| 3003 | this.gdes.push(new RrdGraphDesc(this, RrdGraphDesc.GF_HRULE, value, color, legend)); | 3035 | this.gdes.push(new RrdGraphDesc(this, RrdGraphDesc.GF_HRULE, value, color, legend, dashes, dash_offset)); |
| 3004 | }; | 3036 | }; |
| 3005 | 3037 | ||
| 3006 | RrdGraph.prototype.tmt_conv = function (str) | 3038 | RrdGraph.prototype.tmt_conv = function (str) |
