Skip to content
This repository has been archived by the owner on Jan 23, 2025. It is now read-only.

Commit

Permalink
Added data to multibar chart
Browse files Browse the repository at this point in the history
Signed-off-by: felix.gateru <felix.gateru@gmail.com>
  • Loading branch information
felixgateru committed Mar 20, 2024
1 parent d111f69 commit 3c777aa
Show file tree
Hide file tree
Showing 2 changed files with 278 additions and 55 deletions.
59 changes: 59 additions & 0 deletions ui/web/static/js/charts.js
Original file line number Diff line number Diff line change
Expand Up @@ -1068,6 +1068,65 @@ class MultiBarChart extends Echart {
]
};
multiBarChart.setOption(option);
horizontalBarChart.setOption(option);
var chartData = {
channels: '${this.chartData.channels}'.split(','),
publishers: '${this.chartData.things}'.split(','),
name: '${this.chartData.valueName}',
from: ${this.chartData.startTime},
to: ${this.chartData.stopTime},
aggregation: '${this.chartData.aggregationType}',
interval: '${this.chartData.interval}',
limit: 100,
barColors:'${this.chartData.barColors}'.split(',')
};
fetchData(multiBarChart, chartData);
async function fetchData(multiBarChart, chartData) {
try {
const plotData = [['value', 'thing']];
for (let i = 0; i < chartData.channels.length; i++) {
const apiEndpoint = '${pathPrefix}/data?channel=' + chartData.channels[i] +
'&name=' + chartData.name +
'&from='+ chartData.from +
'&to=' + chartData.to +
'&aggregation=' + chartData.aggregation +
'&limit=100' +
'&interval=' + getInterval(chartData) +
'&publisher=' + chartData.publishers[i];
const response = await fetch(apiEndpoint);
if (!response.ok) {
throw new Error('HTTP request failed with status:', response.status)
}
const data = await response.json();
if (data.messages != undefined && data.messages.length > 0) {
dataSeries[i] = {
xAxisArray: [],
dataPoints: []
};
data.messages.forEach((message) => {
dataSeries[i].xAxisArray.push(new Date(message.time).toLocaleTimeString());
dataSeries[i].dataPoints.push(message.value);
});
plotData.push(dataSeries[i])
}
}
updateChart(horizontalBarChart, plotData);
} catch (error) {
console.error("Error fetching data:", error);
}
}
function updateChart(multiBarChart, plotData) {
option = multiBarChart.getOption();
for (let i = 0; i < plotData.length; i++) {
option.series[i].data = plotData[i];
}
multiBarChart.setOption(option);
}
`;
}
}
Expand Down
Loading

0 comments on commit 3c777aa

Please sign in to comment.