From 26c2c26830ce6b086995d98e78c33938e69e9a87 Mon Sep 17 00:00:00 2001 From: Richard Wall Date: Sun, 18 Apr 2010 23:41:13 +0100 Subject: Slightly dodgy yaxis unit labels --- index.html | 12 ++++++------ jrrd.js | 35 +++++++++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/index.html b/index.html index b935840..2b6b5a0 100644 --- a/index.html +++ b/index.html @@ -126,10 +126,10 @@ { title: 'Memory', data: [ - ['data/memory/memory-buffered.rrd', 0, 'Buffered', 'Byte'], - ['data/memory/memory-used.rrd', 0, 'Used', 'Byte'], - ['data/memory/memory-cached.rrd', 0, 'Cached', 'Byte'], - ['data/memory/memory-free.rrd', 0, 'Free', 'Byte'] + ['data/memory/memory-buffered.rrd', 0, 'Buffered', 'B'], + ['data/memory/memory-used.rrd', 0, 'Used', 'B'], + ['data/memory/memory-cached.rrd', 0, 'Cached', 'B'], + ['data/memory/memory-free.rrd', 0, 'Free', 'B'] ], options: jQuery.extend(true, {}, baseOptions, stacked) }, @@ -158,8 +158,8 @@ { title: 'Wlan0 Throughput (B/sec)', data: [ - ['data/interface/if_octets-wlan0.rrd', 'tx', 'Transmit', 'B'], - ['data/interface/if_octets-wlan0.rrd', 'rx', 'Receive', 'B'] + ['data/interface/if_octets-wlan0.rrd', 'tx', 'Transmit', 'b/sec'], + ['data/interface/if_octets-wlan0.rrd', 'rx', 'Receive', 'b/sec'] ], options: jQuery.extend(true, {}, baseOptions) }, diff --git a/jrrd.js b/jrrd.js index 5e723d3..5fcb670 100644 --- a/jrrd.js +++ b/jrrd.js @@ -62,8 +62,9 @@ jrrd.downloadBinary = function(url) { * @param cfName: A {String} name of an RRD consolidation function * @return: A flot compatible data series object **/ -jrrd.RrdQuery = function(rrd) { +jrrd.RrdQuery = function(rrd, unit) { this.rrd = rrd; + this.unit = unit; }; jrrd.RrdQuery.prototype.getData = function(startTime, endTime, dsId, cfName) { @@ -126,12 +127,13 @@ jrrd.RrdQuery.prototype.getData = function(startTime, endTime, dsId, cfName) { timestamp += step; } - return {label: ds.getName(), data: flotData}; + return {label: ds.getName(), data: flotData, unit: this.unit}; }; -jrrd.RrdQueryRemote = function(url) { +jrrd.RrdQueryRemote = function(url, unit) { this.url = url; + this.unit = unit; this.lastUpdate = 0; this._download = null; }; @@ -159,9 +161,9 @@ jrrd.RrdQueryRemote.prototype.getData = function(startTime, endTime, dsId) { // Set up a deferred which will call getData on the local RrdQuery object // returning a flot compatible data object to the caller. var ret = new MochiKit.Async.Deferred().addCallback( - function(startTime, endTime, dsId, rrd) { - return new jrrd.RrdQuery(rrd).getData(startTime, endTime, dsId); - }, startTime, endTime, dsId); + function(self, startTime, endTime, dsId, rrd) { + return new jrrd.RrdQuery(rrd, self.unit).getData(startTime, endTime, dsId); + }, this, startTime, endTime, dsId); // Add a pair of callbacks to the current download which will callback the // result which we setup above. @@ -182,6 +184,7 @@ jrrd.RrdQueryRemote.prototype.getData = function(startTime, endTime, dsId) { jrrd.RrdQueryDsProxy = function(rrdQuery, dsId) { this.rrdQuery = rrdQuery; this.dsId = dsId; + this.unit = rrdQuery.unit; }; jrrd.RrdQueryDsProxy.prototype.getData = function(startTime, endTime) { @@ -237,8 +240,11 @@ jrrd.Chart = function(template, options) { var ticks = []; for(var j=tickMin; j<=tickMax; j+=stepSize) { - ticks.push([j*Math.pow(1000, si), j.toFixed(decimalPlaces) + siPrefixes[si]]); + ticks.push([j*Math.pow(1000, si), j.toFixed(decimalPlaces)]); } + + self.siPrefix = siPrefixes[si]; + return ticks; }; }; @@ -295,9 +301,14 @@ jrrd.Chart.prototype.draw = function() { .addCallback( function(self, data) { var i, label, disabled = []; + unit = ''; for(i=0; i').text(self.siPrefix + unit) + .css({width: '100px', + position: 'absolute', + top: '80px', + left: '-90px', + 'text-align': 'right'}); + self.template.append(yaxisUnitLabel); + yaxisUnitLabel.position(self.template.position()); }, this) .addErrback( function(self, failure) { @@ -338,7 +357,7 @@ jrrd.Chart.fromRecipe = function(template, recipe) { label = recipe['data'][i][2]; unit = recipe['data'][i][3]; if(typeof dataDict[rrd] == 'undefined') { - dataDict[rrd] = new jrrd.RrdQueryRemote(rrd); + dataDict[rrd] = new jrrd.RrdQueryRemote(rrd, unit); } c.addData(label, new jrrd.RrdQueryDsProxy(dataDict[rrd], ds)); } -- cgit v1.2.3