UI: Widgets: Fix latest values processing.

This commit is contained in:
Igor Kulikov 2017-03-16 13:13:29 +02:00
parent b86e377bcf
commit 66066904fb
2 changed files with 11 additions and 8 deletions

View File

@ -131,7 +131,7 @@ export default class DataAggregator {
this.data = this.updateData(); this.data = this.updateData();
} }
if (this.onDataCb) { if (this.onDataCb) {
this.onDataCb(this.data, this.startTs, this.endTs, apply); this.onDataCb(this.data, apply);
} }
var self = this; var self = this;

View File

@ -266,7 +266,7 @@ function DatasourceSubscription(datasourceSubscription, telemetryWebsocketServic
type: types.dataKeyType.timeseries, type: types.dataKeyType.timeseries,
onData: function (data) { onData: function (data) {
if (data.data) { if (data.data) {
onData(data.data, types.dataKeyType.timeseries, null, null, true); onData(data.data, types.dataKeyType.timeseries, true);
} }
}, },
onReconnected: function() {} onReconnected: function() {}
@ -310,7 +310,7 @@ function DatasourceSubscription(datasourceSubscription, telemetryWebsocketServic
subscriber.onReconnected = function() {} subscriber.onReconnected = function() {}
subscriber.onData = function(data) { subscriber.onData = function(data) {
if (data.data) { if (data.data) {
onData(data.data, types.dataKeyType.timeseries, null, null, true); onData(data.data, types.dataKeyType.timeseries, true);
} }
} }
} }
@ -333,7 +333,7 @@ function DatasourceSubscription(datasourceSubscription, telemetryWebsocketServic
type: types.dataKeyType.attribute, type: types.dataKeyType.attribute,
onData: function (data) { onData: function (data) {
if (data.data) { if (data.data) {
onData(data.data, types.dataKeyType.attribute, null, null, true); onData(data.data, types.dataKeyType.attribute, true);
} }
}, },
onReconnected: function() {} onReconnected: function() {}
@ -372,8 +372,8 @@ function DatasourceSubscription(datasourceSubscription, telemetryWebsocketServic
function createRealtimeDataAggregator(subsTw, tsKeyNames, dataKeyType) { function createRealtimeDataAggregator(subsTw, tsKeyNames, dataKeyType) {
return new DataAggregator( return new DataAggregator(
function(data, startTs, endTs, apply) { function(data, apply) {
onData(data, dataKeyType, startTs, endTs, apply); onData(data, dataKeyType, apply);
}, },
tsKeyNames, tsKeyNames,
subsTw.startTs, subsTw.startTs,
@ -541,7 +541,7 @@ function DatasourceSubscription(datasourceSubscription, telemetryWebsocketServic
} }
} }
function onData(sourceData, type, startTs, endTs, apply) { function onData(sourceData, type, apply) {
for (var keyName in sourceData) { for (var keyName in sourceData) {
var keyData = sourceData[keyName]; var keyData = sourceData[keyName];
var key = keyName + '_' + type; var key = keyName + '_' + type;
@ -553,6 +553,7 @@ function DatasourceSubscription(datasourceSubscription, telemetryWebsocketServic
var data = []; var data = [];
var prevSeries; var prevSeries;
var datasourceKeyData; var datasourceKeyData;
var update = false;
if (realtime) { if (realtime) {
datasourceKeyData = []; datasourceKeyData = [];
} else { } else {
@ -576,6 +577,7 @@ function DatasourceSubscription(datasourceSubscription, telemetryWebsocketServic
data.push(series); data.push(series);
prevSeries = series; prevSeries = series;
} }
update = true;
} else if (datasourceSubscription.type === types.widgetType.latest.value) { } else if (datasourceSubscription.type === types.widgetType.latest.value) {
if (keyData.length > 0) { if (keyData.length > 0) {
series = keyData[0]; series = keyData[0];
@ -586,9 +588,10 @@ function DatasourceSubscription(datasourceSubscription, telemetryWebsocketServic
} }
series = [time, value]; series = [time, value];
data.push(series); data.push(series);
update = true;
} }
} }
if (data || (startTs && endTs)) { if (update) {
datasourceData[datasourceKey].data = data; datasourceData[datasourceKey].data = data;
for (var i2 in listeners) { for (var i2 in listeners) {
var listener = listeners[i2]; var listener = listeners[i2];