X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=raspberry-kiosk%2Fkiosk.js;h=52d84daad44f3e680be97e4543608e821265a485;hb=e2120a0b5c7264a9a741519b52f829d6ade95865;hp=1553712c445cea0161f12be48ab535e77e0326b6;hpb=d86b80cba61c22e0ffef0b8fe358473710dd32e7;p=svn42.git
diff --git a/raspberry-kiosk/kiosk.js b/raspberry-kiosk/kiosk.js
index 1553712..52d84da 100644
--- a/raspberry-kiosk/kiosk.js
+++ b/raspberry-kiosk/kiosk.js
@@ -30,7 +30,7 @@ function writeGooglePlusEvents(data, elem)
noteimgs.push(attach[a].thumbnails[t].image.url);
}
}
- else if ( attach[a].objectType == "photo")
+ else if ( attach[a].objectType == "photo" || attach[a].objectType == "video")
{
noteimgs.push(attach[a].image.url);
}
@@ -44,7 +44,7 @@ function writeGooglePlusEvents(data, elem)
ghtml += '
'+item.updated.substring(0,16).replace("T"," ")+'
';
ghtml += ''+notetxt+'
';
if (noteimgs.length>0)
- {
+ {
var bigimglimit;
ghtml += '';
if (noteimgs.length > 3)
@@ -107,47 +107,55 @@ function weekday2str(dow)
return "";
}
-function calendarItemIterator(data)
+function calendarItemEnhancer(data)
{
for (var s=0; s 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;
}
- var itm = data[s];
- itm.when = when;
- yield itm;
+ data[s].when = when
}
+ return data
}
function loadCalendarKiosk()
{
- var calcontainer=document.getElementById("grical_upcoming");
+ var calcontainer=document.getElementById("grical_upcoming_kiosk");
$.getJSON('/shmcache/grical_realraum.json', function(data){
var calhtml = "";
- for (var itm in calendarItemIterator(data)) {
- calhtml += ''+when+' - '+data[s].title+''+"\n";
- }
+ $.each(calendarItemEnhancer(data), function(index, itm) {
+ calhtml += ''+itm.when+' - '+itm.title+''+"\n";
+ });
calcontainer.innerHTML='';
});
}
@@ -158,13 +166,63 @@ function loadCalendarMainPage()
var calcontainer=document.getElementById("grical_upcoming");
$.getJSON('/shmcache/grical_realraum.json', function(data){
var calhtml = "";
- for (var itm in calendarItemIterator(data)) {
- calhtml += ''+"\n";
- }
+ $.each(calendarItemEnhancer(data), function(index, itm) {
+ calhtml += ''+"\n";
+ });
calcontainer.innerHTML='';
});
}
+var gauges = {}
+function drawGauge(targetelem, label, temp, options) {
+ // Create and draw the visualization.
+ if (targetelem)
+ {
+ var data = google.visualization.arrayToDataTable([["Label", "Value"],[label,temp]]);
+ if (!gauges.hasOwnProperty(targetelem.id)) {
+ gauges[targetelem.id] = new google.visualization.Gauge(targetelem);
+ }
+ gauges[targetelem.id].draw(data, options);
+ }
+}
+
+var linecharts = {}
+function drawLineGraph(targetelem, dataarray, options, x_is_epochdate) {
+ if (dataarray && targetelem) {
+ var data;
+ if (x_is_epochdate) {
+ data=new google.visualization.DataTable();
+ data.addColumn('datetime',dataarray[0][0]);
+ for (var c=1; c | '+data.status+' |
';
- document.getElementById('anwesenheit_status').innerHTML=html;
-
+ var anwesenheit_status_kiosk = document.getElementById('anwesenheit_status_kiosk');
+ var anwesenheit_status_frontpage = document.getElementById('anwesenheit_status');
+ if (anwesenheit_status_kiosk)
+ {
+ anwesenheit_status_kiosk.innerHTML=' | | '+data.status+' |
';
+ }
+ if (anwesenheit_status_frontpage)
+ {
+ anwesenheit_status_frontpage.innerHTML=' | | '+data.status+' |
';
+ }
+
if (data.sensors)
{
if (data.sensors.temperature)
{
- sensorstd+='Temperatur';
+ sensorstd+=' | Temperatur';
$.each( data.sensors.temperature, function(s, sensorobj) {
sensorstd+=' '+sensorobj.location+': '+sensorobj.value.toFixed(2)+sensorobj.unit;
+ drawGauge(document.getElementById('tempgauge'), "Temp "+sensorobj.location, sensorobj.value, {redFrom: 33, redTo: 40, yellowFrom:29, yellowTo: 33, minorTicks: 4, min:0, max:40});
});
sensorstd+=' | ';
}
if (data.sensors.ext_illumination)
{
- sensorstd+='Licht';
+ sensorstd+=' | Licht';
$.each( data.sensors.ext_illumination, function(s, sensorobj) {
sensorstd+=' '+sensorobj.location+': '+sensorobj.value;
+ drawGauge(document.getElementById('lightgauge'), "Licht "+sensorobj.location, sensorobj.value, {redFrom: 950, redTo: 1024,yellowFrom:0, yellowTo: 200,minorTicks: 4, min:0, max:1024});
});
sensorstd+=' | ';
}
if (data.sensors.door_locked)
{
- sensorstd+='Eingangstür';
+ sensorstd+=' | Eingangstür';
$.each( data.sensors.door_locked, function(s, sensorobj) {
var lockstatus="Auf";
if (sensorobj.value) { lockstatus = "Zu"; }
@@ -214,7 +282,7 @@ function writeAnwesenheitStatus(data)
}
if (data.sensors.ext_door_ajar)
{
- sensorstd+=' | Türkontakt';
+ sensorstd+=' | Türkontakt';
$.each( data.sensors.ext_door_ajar, function(s, sensorobj) {
var lockstatus="Auf";
if (sensorobj.value) { lockstatus = "Zu"; }
@@ -224,13 +292,13 @@ function writeAnwesenheitStatus(data)
}
if (data.sensors.ext_dust)
{
- sensorstd+=' | Staub';
+ sensorstd+=' | Staub';
$.each( data.sensors.ext_dust, function(s, sensorobj) {
sensorstd+=' '+sensorobj.location+': '+sensorobj.value+sensorobj.unit+' | ';
});
sensorstd+='';
- }
+ }
if (sensorstd != "")
{
sensorshtml='';
@@ -268,7 +336,7 @@ function highlightEntry(idx, color, value)
if(value == 0) {
if(idx%2 == 0)
$('#upnext' + idx).css('background-color', 'white');
- else
+ else
$('#upnext' + idx).css('background-color', '#E0E0E0');
} else {
$('#upnext' + idx).css('background-color', color);
@@ -342,13 +410,35 @@ function reloadImg(element)
$(document).ready(function()
{
- updateDateClock(new Date());
- setInterval("clock()", 500);
updateAnwesenheitStatus();
- loadCalendarKiosk();
- loadGooglePlusEvents();
setInterval("updateAnwesenheitStatus()", 10*1000);
- setInterval("loadCalendarKiosk()", 123*1000);
- setInterval("updateSensors()",145*1000);
- setInterval("loadGooglePlusEvents()", 1207*1000);
+ if (document.getElementById("dateclock"))
+ {
+ updateDateClock(new Date());
+ setInterval("clock()", 500);
+ }
+ if (document.getElementById("grical_upcoming_kiosk"))
+ {
+ loadCalendarKiosk();
+ setInterval("loadCalendarKiosk()", 123*1000);
+ }
+ if (document.getElementById("grical_upcoming"))
+ {
+ loadCalendarMainPage();
+ setInterval("loadCalendarMainPage()", 123*1000);
+ }
+// if (document.getElementById("sensorgraphs"))
+// {
+// setInterval("updateSensors()",145*1000);
+// }
+ if (document.getElementById("tempgooglegraph") || document.getElementById("lightgooglegraph") || document.getElementById("movementgooglegraph"))
+ {
+ loadAndDrawSensorData();
+ setInterval("loadAndDrawSensorData()",145*1000);
+ }
+ if (document.getElementById("gplusevents"))
+ {
+ loadGooglePlusEvents();
+ setInterval("loadGooglePlusEvents()", 1207*1000);
+ }
});