mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Merge pull request #753 from madhawap/master
Fixes android sense statistic graph issue
This commit is contained in:
commit
581972b4c0
@ -75,6 +75,7 @@ var rotation_yData = [];
|
|||||||
var rotation_zData = [];
|
var rotation_zData = [];
|
||||||
|
|
||||||
var graphMap = {};
|
var graphMap = {};
|
||||||
|
var graphSettingsMap = {};
|
||||||
|
|
||||||
var palette = new Rickshaw.Color.Palette({scheme: "munin"});
|
var palette = new Rickshaw.Color.Palette({scheme: "munin"});
|
||||||
|
|
||||||
@ -83,21 +84,21 @@ var elemTop;
|
|||||||
$(window).load(function () {
|
$(window).load(function () {
|
||||||
|
|
||||||
graphMap["battery"]=lineGraph("battery", batteryData);
|
graphMap["battery"]=lineGraph("battery", batteryData);
|
||||||
graphMap["light"]=lineGraph("light", lightData);
|
graphMap["light"]=lineGraph("light", lightData);
|
||||||
graphMap["pressure"]=lineGraph("pressure", pressureData);
|
graphMap["pressure"]=lineGraph("pressure", pressureData);
|
||||||
graphMap["proximity"]=lineGraph("proximity", proximityData);
|
graphMap["proximity"]=lineGraph("proximity", proximityData);
|
||||||
graphMap["accelerometer"]=threeDlineGraph("accelerometer", accelerometer_xData, accelerometer_yData, accelerometer_zData);
|
graphMap["accelerometer"]=threeDlineGraph("accelerometer", accelerometer_xData, accelerometer_yData, accelerometer_zData);
|
||||||
graphMap["magnetic"]=threeDlineGraph("magnetic", magnetic_xData, magnetic_yData, magnetic_zData);
|
graphMap["magnetic"]=threeDlineGraph("magnetic", magnetic_xData, magnetic_yData, magnetic_zData);
|
||||||
graphMap["gyroscope"]=threeDlineGraph("gyroscope", gyroscope_xData, gyroscope_yData, gyroscope_zData);
|
graphMap["gyroscope"]=threeDlineGraph("gyroscope", gyroscope_xData, gyroscope_yData, gyroscope_zData);
|
||||||
graphMap["gravity"]=threeDlineGraph("gravity", gravity_xData, gravity_yData, gravity_zData);
|
graphMap["gravity"]=threeDlineGraph("gravity", gravity_xData, gravity_yData, gravity_zData);
|
||||||
graphMap["rotation"]=threeDlineGraph("rotation", rotation_xData, rotation_yData, rotation_zData);
|
graphMap["rotation"]=threeDlineGraph("rotation", rotation_xData, rotation_yData, rotation_zData);
|
||||||
|
|
||||||
var websocketUrl = $("#stat-section").data("websocketurl");
|
var websocketUrl = $("#stat-section").data("websocketurl");
|
||||||
connect(websocketUrl)
|
connect(websocketUrl)
|
||||||
});
|
});
|
||||||
|
|
||||||
window.onbeforeunload = function() {
|
window.onbeforeunload = function() {
|
||||||
disconnect();
|
disconnect();
|
||||||
};
|
};
|
||||||
|
|
||||||
function threeDlineGraph(type, xChartData, yChartData, zChartData) {
|
function threeDlineGraph(type, xChartData, yChartData, zChartData) {
|
||||||
@ -121,10 +122,10 @@ function threeDlineGraph(type, xChartData, yChartData, zChartData) {
|
|||||||
|
|
||||||
var graph = new Rickshaw.Graph({
|
var graph = new Rickshaw.Graph({
|
||||||
element: $elem[0],
|
element: $elem[0],
|
||||||
width: $elem.width() - 100,
|
width: $elem.width() - 100,
|
||||||
height: 300,
|
height: 300,
|
||||||
renderer: "line",
|
renderer: "line",
|
||||||
interpolation: "linear",
|
interpolation: "linear",
|
||||||
padding: {top: 0.2, left: 0.0, right: 0.0, bottom: 0.2},
|
padding: {top: 0.2, left: 0.0, right: 0.0, bottom: 0.2},
|
||||||
xScale: d3.time.scale(),
|
xScale: d3.time.scale(),
|
||||||
series: [
|
series: [
|
||||||
@ -140,26 +141,26 @@ function threeDlineGraph(type, xChartData, yChartData, zChartData) {
|
|||||||
|
|
||||||
xAxis.render();
|
xAxis.render();
|
||||||
|
|
||||||
new Rickshaw.Graph.Axis.Y({
|
new Rickshaw.Graph.Axis.Y({
|
||||||
graph: graph,
|
graph: graph,
|
||||||
orientation: 'left',
|
orientation: 'left',
|
||||||
height: 300,
|
height: 300,
|
||||||
tickFormat: Rickshaw.Fixtures.Number.formatKMBT,
|
tickFormat: Rickshaw.Fixtures.Number.formatKMBT,
|
||||||
element: document.getElementById("y-axis-"+type)
|
element: document.getElementById("y-axis-"+type)
|
||||||
});
|
});
|
||||||
|
|
||||||
new Rickshaw.Graph.Legend({
|
new Rickshaw.Graph.Legend({
|
||||||
graph: graph,
|
graph: graph,
|
||||||
element: document.getElementById('legend-' + type)
|
element: document.getElementById('legend-' + type)
|
||||||
});
|
});
|
||||||
|
|
||||||
var detail = new Rickshaw.Graph.HoverDetail({
|
var detail = new Rickshaw.Graph.HoverDetail({
|
||||||
graph: graph
|
graph: graph
|
||||||
});
|
});
|
||||||
|
|
||||||
graph.render();
|
graph.render();
|
||||||
|
|
||||||
return graph;
|
return graph;
|
||||||
}
|
}
|
||||||
|
|
||||||
function lineGraph(type, chartData) {
|
function lineGraph(type, chartData) {
|
||||||
@ -171,15 +172,15 @@ function lineGraph(type, chartData) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var $elem = $("#chart-" + type);
|
var $elem = $("#chart-" + type);
|
||||||
|
|
||||||
var graph = new Rickshaw.Graph({
|
var graph = new Rickshaw.Graph({
|
||||||
element: $elem[0],
|
element: $elem[0],
|
||||||
width: $elem.width() - 100,
|
width: $elem.width() - 100,
|
||||||
height: 300,
|
height: 300,
|
||||||
renderer: "line",
|
renderer: "line",
|
||||||
interpolation: "linear",
|
interpolation: "linear",
|
||||||
padding: {top: 0.2, left: 0.0, right: 0.0, bottom: 0.2},
|
padding: {top: 0.2, left: 0.0, right: 0.0, bottom: 0.2},
|
||||||
xScale: d3.time.scale(),
|
xScale: d3.time.scale(),
|
||||||
series: [{
|
series: [{
|
||||||
'color': palette.color(),
|
'color': palette.color(),
|
||||||
@ -205,7 +206,7 @@ function lineGraph(type, chartData) {
|
|||||||
new Rickshaw.Graph.Legend({
|
new Rickshaw.Graph.Legend({
|
||||||
graph: graph,
|
graph: graph,
|
||||||
element: document.getElementById('legend-' + type)
|
element: document.getElementById('legend-' + type)
|
||||||
});
|
});
|
||||||
|
|
||||||
new Rickshaw.Graph.HoverDetail({
|
new Rickshaw.Graph.HoverDetail({
|
||||||
graph: graph,
|
graph: graph,
|
||||||
@ -216,9 +217,9 @@ function lineGraph(type, chartData) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
graph.render();
|
graph.render();
|
||||||
|
|
||||||
return graph;
|
return graph;
|
||||||
}
|
}
|
||||||
|
|
||||||
//websocket connection
|
//websocket connection
|
||||||
@ -231,7 +232,7 @@ function connect(target) {
|
|||||||
console.log('WebSocket is not supported by this browser.');
|
console.log('WebSocket is not supported by this browser.');
|
||||||
}
|
}
|
||||||
if (ws) {
|
if (ws) {
|
||||||
ws.onmessage = function (event) {
|
ws.onmessage = function (event) {
|
||||||
var dataPoint = JSON.parse(event.data);
|
var dataPoint = JSON.parse(event.data);
|
||||||
|
|
||||||
if (dataPoint) {
|
if (dataPoint) {
|
||||||
@ -242,50 +243,50 @@ function connect(target) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "light":
|
case "light":
|
||||||
graphUpdate(lightData, time, dataPoint[lightId], graphMap["light"]);
|
graphUpdate(lightData, time, dataPoint[lightId], graphMap["light"]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "pressure":
|
case "pressure":
|
||||||
graphUpdate(pressureData, time, dataPoint[pressureId], graphMap["pressure"]);
|
graphUpdate(pressureData, time, dataPoint[pressureId], graphMap["pressure"]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "proximity":
|
case "proximity":
|
||||||
graphUpdate(proximityData, time, dataPoint[proximityId], graphMap["proximity"]);
|
graphUpdate(proximityData, time, dataPoint[proximityId], graphMap["proximity"]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "accelerometer":
|
case "accelerometer":
|
||||||
dataUpdate(accelerometer_xData, time, dataPoint[accelerometer_xId]);
|
dataUpdate(accelerometer_xData, time, dataPoint[accelerometer_xId]);
|
||||||
dataUpdate(accelerometer_yData, time, dataPoint[accelerometer_yId]);
|
dataUpdate(accelerometer_yData, time, dataPoint[accelerometer_yId]);
|
||||||
dataUpdate(accelerometer_zData, time, dataPoint[accelerometer_zId]);
|
dataUpdate(accelerometer_zData, time, dataPoint[accelerometer_zId]);
|
||||||
graphMap["accelerometer"].update();
|
graphMap["accelerometer"].update();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "magnetic":
|
case "magnetic":
|
||||||
dataUpdate(magnetic_xData, time, dataPoint[magnetic_xId]);
|
dataUpdate(magnetic_xData, time, dataPoint[magnetic_xId]);
|
||||||
dataUpdate(magnetic_yData, time, dataPoint[magnetic_yId]);
|
dataUpdate(magnetic_yData, time, dataPoint[magnetic_yId]);
|
||||||
dataUpdate(magnetic_zData, time, dataPoint[magnetic_zId]);
|
dataUpdate(magnetic_zData, time, dataPoint[magnetic_zId]);
|
||||||
graphMap["magnetic"].update();
|
graphMap["magnetic"].update();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "gyroscope":
|
case "gyroscope":
|
||||||
dataUpdate(gyroscope_xData, time, dataPoint[gyroscope_xId]);
|
dataUpdate(gyroscope_xData, time, dataPoint[gyroscope_xId]);
|
||||||
dataUpdate(gyroscope_yData, time, dataPoint[gyroscope_yId]);
|
dataUpdate(gyroscope_yData, time, dataPoint[gyroscope_yId]);
|
||||||
dataUpdate(gyroscope_zData, time, dataPoint[gyroscope_zId]);
|
dataUpdate(gyroscope_zData, time, dataPoint[gyroscope_zId]);
|
||||||
graphMap["gyroscope"].update();
|
graphMap["gyroscope"].update();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "rotation":
|
case "rotation":
|
||||||
dataUpdate(magnetic_xData, time, dataPoint[rotation_xId]);
|
dataUpdate(magnetic_xData, time, dataPoint[rotation_xId]);
|
||||||
dataUpdate(magnetic_yData, time, dataPoint[rotation_yId]);
|
dataUpdate(magnetic_yData, time, dataPoint[rotation_yId]);
|
||||||
dataUpdate(magnetic_zData, time, dataPoint[rotation_zId]);
|
dataUpdate(magnetic_zData, time, dataPoint[rotation_zId]);
|
||||||
graphMap["rotation"].update();
|
graphMap["rotation"].update();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "gravity":
|
case "gravity":
|
||||||
dataUpdate(gravity_xData, time, dataPoint[gravity_xId]);
|
dataUpdate(gravity_xData, time, dataPoint[gravity_xId]);
|
||||||
dataUpdate(gravity_yData, time, dataPoint[gravity_yId]);
|
dataUpdate(gravity_yData, time, dataPoint[gravity_yId]);
|
||||||
dataUpdate(gravity_zData, time, dataPoint[gravity_zId]);
|
dataUpdate(gravity_zData, time, dataPoint[gravity_zId]);
|
||||||
graphMap["gravity"].update();
|
graphMap["gravity"].update();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -318,53 +319,55 @@ function disconnect() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function maximizeGraph(graph, width,height){
|
function maximizeGraph(graph, width,height){
|
||||||
graph.configure({
|
graphSettingsMap[graph.element.id] = {'width': graph.width, 'height': graph.height};
|
||||||
width: width*2,
|
graph.configure({
|
||||||
height: height*2
|
width: width*2,
|
||||||
|
height: height*2
|
||||||
|
|
||||||
});
|
});
|
||||||
graph.update();
|
graph.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
function minimizeGraph(graph){
|
function minimizeGraph(graph){
|
||||||
graph.configure({
|
var graphSettings = graphSettingsMap[graph.element.id];
|
||||||
width: 366,
|
graph.configure({
|
||||||
height: 300
|
width: graphSettings.width,
|
||||||
});
|
height: graphSettings.height
|
||||||
graph.update();
|
});
|
||||||
|
graph.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
//maximize minimize functionality
|
//maximize minimize functionality
|
||||||
$(".fw-expand").click(function(e) {
|
$(".fw-expand").click(function(e) {
|
||||||
var innerGraph= graphMap[e.target.nextElementSibling.innerHTML];
|
var innerGraph= graphMap[e.target.nextElementSibling.innerHTML];
|
||||||
var width = $(".chartWrapper").width();
|
var width = $(".chartWrapper").width();
|
||||||
var height = $(".chartWrapper").height();
|
var height = $(".chartWrapper").height();
|
||||||
|
|
||||||
if($(this).hasClass("default-view")){
|
if($(this).hasClass("default-view")){
|
||||||
elemTop = $('#'+innerGraph.element.id).parents('.graph')[0].offsetTop;
|
elemTop = $('#'+innerGraph.element.id).parents('.graph')[0].offsetTop;
|
||||||
$(this).removeClass("default-view");
|
$(this).removeClass("default-view");
|
||||||
$(this).removeClass("fw-expand");
|
$(this).removeClass("fw-expand");
|
||||||
$(this).addClass("fw-contract");
|
$(this).addClass("fw-contract");
|
||||||
maximizeGraph(innerGraph,width,height);
|
maximizeGraph(innerGraph,width,height);
|
||||||
$(this).parent().parent().addClass("max");
|
$(this).parent().parent().addClass("max");
|
||||||
$(this).closest(".graph").siblings().addClass("max_hide");
|
$(this).closest(".graph").siblings().addClass("max_hide");
|
||||||
$(this).closest(".graph").parent().siblings().addClass("max_hide");
|
$(this).closest(".graph").parent().siblings().addClass("max_hide");
|
||||||
}else{
|
}else{
|
||||||
$(this).addClass("default-view");
|
$(this).addClass("default-view");
|
||||||
$(this).addClass("fw-expand");
|
$(this).addClass("fw-expand");
|
||||||
$(this).removeClass("fw-contract");
|
$(this).removeClass("fw-contract");
|
||||||
minimizeGraph(innerGraph);
|
minimizeGraph(innerGraph);
|
||||||
$(this).parent().parent().removeClass("max");
|
$(this).parent().parent().removeClass("max");
|
||||||
$(this).closest(".graph").siblings().removeClass("max_hide");
|
$(this).closest(".graph").siblings().removeClass("max_hide");
|
||||||
$(this).closest(".graph").parent().siblings().removeClass("max_hide");
|
$(this).closest(".graph").parent().siblings().removeClass("max_hide");
|
||||||
focusToArea()
|
focusToArea()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//graph focusing function
|
//graph focusing function
|
||||||
function focusToArea(){
|
function focusToArea(){
|
||||||
var container = $("body");
|
var container = $("body");
|
||||||
container.animate({
|
container.animate({
|
||||||
scrollTop: elemTop
|
scrollTop: elemTop
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user