From b3aee86b032349c82bfbf0f7f3e1314249f0eb7d Mon Sep 17 00:00:00 2001 From: Boris Krivonog Date: Thu, 21 Jan 2021 17:24:15 +0100 Subject: [PATCH] Gauges didn't update on initial load when store does not yet contain values (NaN). Signed-off-by: Boris Krivonog --- .../widgets/chart/series/oh-data-series.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/bundles/org.openhab.ui/web/src/components/widgets/chart/series/oh-data-series.js b/bundles/org.openhab.ui/web/src/components/widgets/chart/series/oh-data-series.js index 2351f65517..73c6c753b8 100644 --- a/bundles/org.openhab.ui/web/src/components/widgets/chart/series/oh-data-series.js +++ b/bundles/org.openhab.ui/web/src/components/widgets/chart/series/oh-data-series.js @@ -7,23 +7,28 @@ export default { get (component, points, startTime, endTime, chart) { let series = {} + if (!component.dataSeriesId) { + component.dataSeriesId = Framework7.utils.id() + '.' + } + if (component.config) { if (typeof component.config !== 'object') return {} - const id = Framework7.utils.id() + '.' - for (const key in component.config) { - chart.$set(series, key, chart.evaluateExpression(id + key, component.config[key])) + chart.$set(series, key, chart.evaluateExpression(component.dataSeriesId + key, component.config[key])) } if (component.config.data && Array.isArray(component.config.data)) { - series.data = component.config.data.map((v, index) => chart.evaluateExpression(id + 'data.' + index, v)) + series.data = component.config.data.map((v, index) => { + const item = chart.evaluateExpression(component.dataSeriesId + 'data.' + index, v) + return Number.isNaN(item.value) ? {} : item + }) } if (component.config.axisLine && component.config.axisLine.lineStyle && component.config.axisLine.lineStyle.color && Array.isArray(component.config.axisLine.lineStyle.color)) { series.axisLine.lineStyle.color = component.config.axisLine.lineStyle.color.map((v, index) => { if (!Array.isArray(v)) return v - return v.map((s, subindex) => chart.evaluateExpression(id + 'axisLine.lineStyle.color.' + index + '.' + subindex, s)) + return v.map((s, subindex) => chart.evaluateExpression(component.dataSeriesId + 'axisLine.lineStyle.color.' + index + '.' + subindex, s)) }) } }