Skip to content

Commit

Permalink
Fix premature and unnecessary load of totals data
Browse files Browse the repository at this point in the history
  • Loading branch information
andig committed Jan 14, 2015
1 parent 92b2f91 commit 174fa7f
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 13 deletions.
20 changes: 20 additions & 0 deletions htdocs/frontend/javascripts/entities.js
Expand Up @@ -107,6 +107,26 @@ vz.entities.loadMultipleDetails = function(entities) {
});
};

/**
* Load total consumption for all entities that have the initialconsumption property defined
*/
vz.entities.loadTotals = function() {
if (vz.options.totals) {
var queue = [];
vz.entities.each(function(entity) {
if (entity.initialconsumption !== undefined) {
queue.push(entity.loadTotalConsumption());
}
}, true); // recursive

// set timeout for next load once completed
$.when.apply($, queue).done(function() {
vz.entities.updateTable(); // unhide total column
window.setTimeout(vz.entities.loadTotals, vz.options.totalsInterval * 1000);
});
}
};

/**
* Speedup middleware queries, requires options[aggregate] enabled
* @return {string} group option or undefined
Expand Down
16 changes: 4 additions & 12 deletions htdocs/frontend/javascripts/entity.js
Expand Up @@ -192,11 +192,6 @@ Entity.prototype.updateData = function(data) {

this.updateAxisScale();
this.updateDOMRow();

// load totals whenever data changes - this happens async to updateDOMRow()
if (this.initialconsumption !== undefined) {
this.loadTotalConsumption();
}
};

/**
Expand All @@ -217,14 +212,11 @@ Entity.prototype.loadTotalConsumption = function() {
success: function(json) {
var row = $('#entity-' + this.uuid);
var unit = vz.wui.formatConsumptionUnit(this.definition.unit);
var consumption = (this.definition.scale || 1) * this.initialconsumption + json.data.consumption;
this.totalconsumption = (this.definition.scale || 1) * this.initialconsumption + json.data.consumption;

$('.total', row)
.data('total', consumption)
.text(vz.wui.formatNumber(consumption, unit, 'k'));

// unhide total column
vz.entities.updateTable();
.data('total', this.totalconsumption)
.text(vz.wui.formatNumber(this.totalconsumption, unit, 'k'));
}
});
};
Expand Down Expand Up @@ -607,7 +599,7 @@ Entity.prototype.updateDOMRow = function() {
$('.last', row).text('');
$('.consumption', row).text('');
$('.cost', row).text('');
$('.total', row).text('').data('total', null);
// $('.total', row).text('').data('total', null);

if (this.data && this.data.rows > 0) { // update statistics if data available
var yearMultiplier = 365*24*60*60*1000 / (this.data.to - this.data.from); // ms
Expand Down
5 changes: 4 additions & 1 deletion htdocs/frontend/javascripts/init.js
Expand Up @@ -132,7 +132,10 @@ $(document).ready(function() {
vz.wui.dialogs.init();
}
vz.entities.showTable();
vz.entities.loadData().done(vz.wui.drawPlot);
vz.entities.loadData().done(function() {
vz.wui.drawPlot();
vz.entities.loadTotals();
});
});
});
});
Expand Down
1 change: 1 addition & 0 deletions htdocs/frontend/javascripts/options.js
Expand Up @@ -29,6 +29,7 @@ vz.options = {
precision: 2, // TODO update from middleware capabilities?
tuples: null, // automatically determined by plot size
refresh: false,
totalsInterval: 300, // update interval for consumption is retrieved for each channel where initialconsumption > 0
shortenLongTypes: false, // show shorter type names in table
minTimeout: 2000, // minimum refresh time in ms
interval: 24*60*60*1000, // 1 day default time interval to show
Expand Down

0 comments on commit 174fa7f

Please sign in to comment.