remove stuff
[svn42.git] / raspberry-kiosk / kiosk.js
index d506e1e..778ed47 100644 (file)
@@ -112,27 +112,36 @@ function calendarItemEnhancer(data)
     for (var s=0; s<data.length; s++)
     {
       var when = "";
-      var dt = Date.parse(data[s].start+'T'+data[s].starttime);
-      if (Date.now() > dt)
+      var stime = data[s].starttime;
+      var dt;
+      if (stime) {
+        dt = Date.parse(data[s].start+'T'+data[s].starttime);
+      } else {
+        dt = Date.parse(data[s].start);
+      }
+      if (stime && Date.now() > dt)
       {
         when = "JETZT";
       }
       else
       {
         var weekday = weekday2str((new Date(dt)).getDay());
-        var stime = data[s].starttime;
         var month = data[s].start.substring(5,7);
         if (month[0] == '0')
           month = month[1];
         var dayofmonth = data[s].start.substring(8,10);
           if (dayofmonth[0] == '0')
           dayofmonth = dayofmonth[1];
-        while (stime.substring(stime.length-3,stime.length) == ":00")
-        {
-          stime=stime.substring(0,stime.length-3);
+        if (stime) {
+          while (stime.substring(stime.length-3,stime.length) == ":00")
+          {
+            stime=stime.substring(0,stime.length-3);
+          }
+          if (stime.length <= 2) { stime+="h"; }
+          when = weekday + " " + dayofmonth+"."+month +", "+stime;
+        } else {
+          when = weekday + " " + dayofmonth+"."+month;
         }
-        if (stime.length <= 2) { stime+="h"; }
-        when = weekday + " " + dayofmonth+"."+month +", "+stime;
       }
       data[s].when = when
     }
@@ -207,14 +216,26 @@ function drawLineGraph(targetelem, dataarray, options, x_is_epochdate) {
 function loadAndDrawSensorData() {
   $.getJSON("https://realraum.at/shmcache/r3sensors.json", function(data){
     drawLineGraph(document.getElementById('tempgooglegraph'), data["TempSensorUpdate"],
-      {curveType: "function", title: 'Temperature Sensors', colors: ['#FF0000','#CC0033','#660000','#CC3333'], chartArea:{left:32,top:20,width:"88%",height:"83%"}, legend: {position: "none"}} ,true);
+      {curveType: "function", title: 'Temperature Sensors', colors: ['#FF0000','#CC0033','#660000','#CC3333'], vAxis:{viewWindow:{min:15,max:26}, viewWindowMode:"explicit"}, chartArea:{left:32,top:20,width:"88%",height:"78%"}, legend: {position: "none"}} ,true);
     drawLineGraph(document.getElementById('lightgooglegraph'), data["IlluminationSensorUpdate"],
-        {curveType: "none", title: 'Illumination Sensors', vAxis: {maxValue: 1024, minValue:5}, chartArea:{left:32,top:20,width:"88%",height:"83%"}, legend: {position: "none"}} ,true);
+        {curveType: "none", title: 'Illumination Sensors', vAxis: {maxValue: 1024, minValue:5}, chartArea:{left:32,top:20,width:"88%",height:"78%"}, legend: {position: "none"}} ,true);
     drawLineGraph(document.getElementById('movementgooglegraph'), data["MovementSensorUpdate"],
-        {curveType: "function", title: 'Movement Sensors', vAxis: {maxValue: 10, minValue:0}, chartArea:{left:32,top:20,width:"88%",height:"83%"}, legend: {position: "none"}} ,true);
+        {curveType: "function", title: 'Movement Sensors', vAxis: {maxValue: 10, minValue:0,viewWindowMode:"maximized"}, chartArea:{left:32,top:20,width:"88%",height:"78%"}, legend: {position: "none"}} ,true);
     });
 }
 
+function siNumberString(num,unit)
+{
+  var siid=""
+  var sisize=new Array([1e9,"G"],[1e6,"M"],[1e3,"K"]);
+  for (i=0; i<sisize.length; i++)
+  { 
+    if (num >= sisize[i][0]) { siid=sisize[i][1]; num=num/sisize[i][0]; break;}
+
+  }
+  return (Math.round(num*10)/10)+siid+unit;
+}
+
 function writeAnwesenheitStatus(data)
 {
   var html="";
@@ -232,13 +253,21 @@ function writeAnwesenheitStatus(data)
   }
   var anwesenheit_status_kiosk = document.getElementById('anwesenheit_status_kiosk');
   var anwesenheit_status_frontpage = document.getElementById('anwesenheit_status');
+  var statusage = parseInt((new Date()).getTime()/1000) - data.lastchange;
+  var statusagestatus = "";
+  if (statusage > 600)
+  {
+    //var statusagestatus = '<tr style="height:5px; overflow:hidden; "><td colspan="2"></td><td style="text-align:right; font-size:5%; background:red;">Status older than ' + siNumberString(statusage,"s") + '</td></tr>';
+    var statusagestatus = '<br/><div style="text-align:right; float:right; margin:0; padding:1px; line-height:105%; font-size:65%; background:red;">Status older than ' + siNumberString(statusage,"s") + '</div>';
+  }
   if (anwesenheit_status_kiosk)
   {
     anwesenheit_status_kiosk.innerHTML='<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100"><tr><td style="width:100px;"><img style="float:left;" src="'+iconuri+'" height="100" width="100"/></td><td style="width:4px;"></td><td class="anwesenheitsstatus" style="background-color:'+statuscolor+'; ">'+data.status+'</td></tr></table>';
   }
   if (anwesenheit_status_frontpage)
   {
-    anwesenheit_status_frontpage.innerHTML='<table border="0" cellpadding="0" cellspacing="0" width="100%" height="42"><tr><td style="width:42px;"><img style="float:left;" src="'+iconuri+'" height="42" width="42"/></td><td style="width:4px;"></td><td style="background-color:'+statuscolor+'; height:42px; text-align:center; margin-left:48px; margin-right:auto; font-size:larger; font-weight:bold; vertical-align:middle; display:table-cell;">'+data.status+'</td></tr></table>';
+    //anwesenheit_status_frontpage.innerHTML='<table border="0" cellpadding="0" cellspacing="0" width="100%" height="42"><tr><td style="width:42px;"><img style="float:left;" src="'+iconuri+'" height="42" width="42"/></td><td style="width:4px;"></td><td style="background-color:'+statuscolor+'; height:42px; text-align:center; margin-left:48px; margin-right:auto; font-size:larger; font-weight:bold; vertical-align:middle; display:table-cell;">'+data.status+'</td></tr>'+statusagestatus+'</table>';
+    anwesenheit_status_frontpage.innerHTML='<table border="0" cellpadding="0" cellspacing="0" width="100%" height="42"><tr><td style="width:42px;"><img style="float:left;" src="'+iconuri+'" height="42" width="42"/></td><td style="width:4px;"></td><td style="background-color:'+statuscolor+'; height:42px; text-align:center; margin-left:48px; margin-right:auto; font-size:larger; font-weight:bold; vertical-align:middle; display:table-cell;">'+data.status+statusagestatus+'</td></tr></table>';
   }
 
   if (data.sensors)