farmOS/modules/farm/farm_sensor/farm_sensor_listener/farm_sensor_listener.js

51 lines
1.5 KiB
JavaScript

(function ($) {
Drupal.behaviors.farm_area_generate = {
attach: function (context, settings) {
// Calculate the timezone offset in milliseconds.
var tzoffset = (new Date()).getTimezoneOffset() * 60000;
// Iterate through the graphs.
for (var i = 0; i < settings.farm_sensor_listener.graphs.length; i++) {
// Get the graph name, id, and data.
var name = settings.farm_sensor_listener.graphs[i]['name'];
var id = settings.farm_sensor_listener.graphs[i]['id'];
var data = settings.farm_sensor_listener.graphs[i]['data'];
// Initialize variables.
var dates=[];
var values=[];
// Iterate through the data and put it into the arrays.
for (var j = 0; j < data.length; j++) {
var date = new Date((data[j].timestamp * 1000) - tzoffset).toISOString();
dates.push(date);
values.push(data[j][name]);
}
// Assemble variables for plotly.
var graph_data=[{
x: dates,
y: values,
name: name,
type: 'scatter'
}];
var layout = {
title: name,
height: 400,
xaxis: { title: 'date' },
yaxis: { title: name }
};
var config = {
responsive: true
};
// Draw the graph to the element.
element = document.getElementById(id);
Plotly.newPlot(element, graph_data, layout, config);
}
}
};
}(jQuery));