mirror of
https://github.com/ConnectedHumber/Air-Quality-Web
synced 2024-11-22 06:23:01 +00:00
[client/device-graph] It works. Yay! :D
This commit is contained in:
parent
051690c9e1
commit
27e8602354
2 changed files with 27 additions and 6 deletions
|
@ -4,9 +4,10 @@
|
||||||
// We're using the git repo for now until an update is released, and rollup doesn't like that apparently
|
// We're using the git repo for now until an update is released, and rollup doesn't like that apparently
|
||||||
import CreateElement from '../../node_modules/dom-create-element-query-selector/src/index.js';
|
import CreateElement from '../../node_modules/dom-create-element-query-selector/src/index.js';
|
||||||
|
|
||||||
|
import moment from 'moment';
|
||||||
// import Chart from 'chart.js';
|
// import Chart from 'chart.js';
|
||||||
// Chart.js pollutes the global scope, but the main entry point is going to change soon in v2.8 - which should fix our issue here
|
// Chart.js pollutes the global scope, but the main entry point is going to change soon in v2.8 - which should fix our issue here
|
||||||
import Chart from '../../node_modules/chart.js/dist/Chart.min.js';
|
import Chart from '../../node_modules/chart.js/dist/Chart.bundle.min.js';
|
||||||
|
|
||||||
import GetFromUrl from './Helpers/GetFromUrl.mjs';
|
import GetFromUrl from './Helpers/GetFromUrl.mjs';
|
||||||
import Postify from './Helpers/Postify.mjs';
|
import Postify from './Helpers/Postify.mjs';
|
||||||
|
@ -61,17 +62,37 @@ class DeviceReadingDisplay {
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_chart(data) {
|
setup_chart(data) {
|
||||||
|
console.log("[marker/popup/device-graph] Data:", data);
|
||||||
this.chart = new Chart(
|
this.chart = new Chart(
|
||||||
this.display.querySelector("canvas").getContext("2d"), {
|
this.display.querySelector("canvas").getContext("2d"), {
|
||||||
type: "line",
|
type: "line",
|
||||||
data: {
|
data: {
|
||||||
|
labels: data.map((point) => point.t),
|
||||||
datasets: [{
|
datasets: [{
|
||||||
label: this.reading_type.friendly_text,
|
label: this.reading_type.friendly_text,
|
||||||
data
|
data
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
options: {
|
options: {
|
||||||
|
scales: {
|
||||||
|
xAxes: [{
|
||||||
|
type: "time",
|
||||||
|
time: {
|
||||||
|
format: "YYYY-MM-DD HH:mm",
|
||||||
|
tooltipFormat: 'll HH:mm'
|
||||||
|
},
|
||||||
|
scaleLabel: {
|
||||||
|
display: true,
|
||||||
|
labelString: "Time"
|
||||||
|
}
|
||||||
|
}],
|
||||||
|
yAxes: [{
|
||||||
|
scaleLabel: {
|
||||||
|
display: true,
|
||||||
|
labelString: "Value"
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -82,14 +103,13 @@ class DeviceReadingDisplay {
|
||||||
action: "device-data",
|
action: "device-data",
|
||||||
"device-id": this.device_id,
|
"device-id": this.device_id,
|
||||||
"reading-type": this.reading_type.id,
|
"reading-type": this.reading_type.id,
|
||||||
// Need to work in milliseconds here, not seconds
|
start: moment().subtract(1, "days").toISOString(),
|
||||||
start: new Date(new Date - 1000*60*60*24).toISOString(),
|
end: moment().toISOString(),
|
||||||
end: (new Date()).toISOString(),
|
|
||||||
"average-seconds": 3600
|
"average-seconds": 3600
|
||||||
})));
|
})));
|
||||||
|
|
||||||
return new_data.map((data_point) => { return {
|
return new_data.map((data_point) => { return {
|
||||||
x: new Date(data_point.datetime),
|
t: moment(data_point.datetime),
|
||||||
y: data_point.value
|
y: data_point.value
|
||||||
}});
|
}});
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
"leaflet-fullscreen": "^1.0.2",
|
"leaflet-fullscreen": "^1.0.2",
|
||||||
"leaflet-timedimension": "^1.1.0",
|
"leaflet-timedimension": "^1.1.0",
|
||||||
"leaflet.markercluster": "^1.4.1",
|
"leaflet.markercluster": "^1.4.1",
|
||||||
|
"moment": "^2.23.0",
|
||||||
"smartsettings": "^1.2.3"
|
"smartsettings": "^1.2.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
Loading…
Reference in a new issue