From c7eba6810249fc2561d2199379178dc225711005 Mon Sep 17 00:00:00 2001
From: adam-abed-abud <aaadam94@gmail.com>
Date: Thu, 23 Apr 2020 17:40:00 +0200
Subject: [PATCH] Fixing bug on charts update

---
 raspberry-backend/app.py                  |  1 +
 raspberry-backend/static/js/Chart-plot.js | 43 ++++++++++++++++++++---
 2 files changed, 39 insertions(+), 5 deletions(-)

diff --git a/raspberry-backend/app.py b/raspberry-backend/app.py
index ba6cdabd..6f0454c1 100755
--- a/raspberry-backend/app.py
+++ b/raspberry-backend/app.py
@@ -179,6 +179,7 @@ def last_N_data():
 
               fetched_all.append(data)
     else:
+        print("BENZINAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")
         for i in range(N):
               data = {key: None for key in list_variables}
               for index, item in enumerate(list_variables):
diff --git a/raspberry-backend/static/js/Chart-plot.js b/raspberry-backend/static/js/Chart-plot.js
index d2752953..10d6892d 100644
--- a/raspberry-backend/static/js/Chart-plot.js
+++ b/raspberry-backend/static/js/Chart-plot.js
@@ -5,6 +5,9 @@ var initial_yaxis_var1 = [];
 var initial_yaxis_var2 = [];
 var time_x;
 
+var updated_xaxis = [];
+var updated_yaxis_var1 = [];
+var updated_yaxis_var2 = [];
 
 /**
  * Request last N data from the server, add it to the graph
@@ -173,6 +176,28 @@ function getSelectValues(select) {
 }
 
 
+function updated_last_results(var1, var2) {
+  $.getJSON({
+      url: '/last_N_data',
+      success: function(data) {
+        for (i=0; i<data.length; i++) {
+          // terrible hack to show the time in reverse order
+          time_x = (-i/5).toFixed(2)
+          updated_xaxis.push(time_x);
+          //initial_xaxis.push(data[i]["timestamp"]);
+          updated_yaxis_var1.push(data[i]["pressure_buffer"]);
+          updated_yaxis_var2.push(data[i]["pressure_buffer"]);
+        }
+        console.log(updated_xaxis);
+        //reverse because data is read from the other way
+        updated_xaxis.reverse();
+        updated_yaxis_var1.reverse();
+        updated_yaxis_var2.reverse();
+      },
+      cache: false
+  });
+}
+
 
 
 // Function runs on chart type select update
@@ -180,19 +205,27 @@ function updateChartType() {
   var selection = document.multiselect('#chart_variables')._item
   var selection_results = getSelectValues(selection)
   console.log("selected variables: ", selection_results);
- 
+  chart.destroy();
+  //chart.data.labels = [];
+  //chart.data.datasets[0].data = [];
+  //chart.data.datasets[1].data = [];
   //here we destroy/delete the old or previous chart and redraw it again
+  updated_xaxis = [];
+  updated_yaxis_var1 = [];
+  updated_yaxis_var2 = [];
   clearInterval(refreshIntervalId);
-  chart.destroy();
+  updated_last_results(selection_results[0], selection_results[1]);
+  
+
   var ctx = document.getElementById('pressure_air_supply');
   chart = new Chart(ctx, {
     type: 'line',
     data: {
-      labels: [],
+      labels: updated_xaxis,
       datasets: [{ 
         label: 'A',
         yAxisID: 'A',
-        data: [],
+        data: updated_yaxis_var1,
         label: selection_results[0],
         borderColor: "#0000FF",
         fill: false,
@@ -200,7 +233,7 @@ function updateChartType() {
       { 
         label: 'B',
         yAxisID: 'B',
-        data: [],
+        data: updated_yaxis_var2,
         label: selection_results[1],
         borderColor: "#000000",
         fill: false,
-- 
GitLab