'
+ ghtml += '
'+item.updated.substring(0,16).replace("T"," ")+'
';
+ ghtml += '
'+notetxt+'
';
+ if (noteimgs.length>0)
+ {
+ var bigimglimit;
+ ghtml += '
';
+ if (noteimgs.length > 3)
+ {
+ var gplusimgmaxwidth = gplusimgwidth - (minimgwidth * ((noteimgs.length -1) / 3));
+ bigimglimit = "max-height:"+(minimgwidth*3)+"px; max-width:"+gplusimgmaxwidth+"px;"
+ ghtml += ' | ';
+ for (var ni=1; ni';
+ var niimax = min(noteimgs.length, ni+3);
+ for (var nii=ni; nii
';
+ }
+ ghtml += '';
+ }
+ }
+ else
+ {
+ var gplusimgmaxwidth = gplusimgwidth / noteimgs.length;
+ bigimglimit = "max-width:"+gplusimgmaxwidth+"px;"
+ for (var ni=0; ni';
+ }
+ }
+ ghtml += '
';
+ }
+ ghtml += '
';
+ }
+ elem.innerHTML=ghtml;
+}
+
+
+function loadGooglePlusEvents()
+{
+ var gpak = "AIzaSyD9xBFM-KWwSYBgZ8VzftJ5wYYvurOxEHg";
+ var gplusuri = "https://www.googleapis.com/plus/v1/people/113737596421797426873/activities/public?maxResults=4&key="+gpak;
+ var gpluscontainer=document.getElementById("gplusevents");
+ $.getJSON(gplusuri, function(data){
+ writeGooglePlusEvents(data, gpluscontainer);
+ });
+}
+
+function weekday2str(dow)
+{
+ var weekday=new Array(7);
+ weekday[0]="So";
+ weekday[1]="Mo";
+ weekday[2]="Di";
+ weekday[3]="Mi";
+ weekday[4]="Do";
+ weekday[5]="Fr";
+ weekday[6]="Sa";
+ weekday[7]="So";
+ if (dow >=0 && dow <=7)
+ return weekday[dow];
+ else
+ return "";
+}
+
+function calendarItemIterator(data)
{
- var calhtml = "";
for (var s=0; s'+"\n";
+ var itm = data[s];
+ itm.when = when;
+ yield itm;
+ }
+}
+
+function loadCalendarKiosk()
+{
+ var calcontainer=document.getElementById("grical_upcoming");
+ $.getJSON('/shmcache/grical_realraum.json', function(data){
+ var calhtml = "";
+ for (var itm in calendarItemIterator(data)) {
+ calhtml += ''+when+' - '+data[s].title+''+"\n";
}
- elem.innerHTML='';
+ calcontainer.innerHTML='';
+ });
}
-function loadCalendar()
+
+function loadCalendarMainPage()
{
//old URI: //grical.realraum.at/s/?query=!realraum&limit=9&view=json
var calcontainer=document.getElementById("grical_upcoming");
- calcontainer.innerHTML="Calendar loading ...
please wait a second or two";
$.getJSON('/shmcache/grical_realraum.json', function(data){
- writeCalendar(data, calcontainer);
+ var calhtml = "";
+ for (var itm in calendarItemIterator(data)) {
+ calhtml += ''+"\n";
+ }
+ calcontainer.innerHTML='';
});
}
+
function writeAnwesenheitStatus(data)
{
var html="";
@@ -50,22 +183,59 @@ function writeAnwesenheitStatus(data)
}
html=' | | '+data.status+' |
';
document.getElementById('anwesenheit_status').innerHTML=html;
-
+
if (data.sensors)
{
- for (var s=0; s'+stype+'
'+swhere+': '+svalue+'';
- });
+ sensorstd+='Temperatur';
+ $.each( data.sensors.temperature, function(s, sensorobj) {
+ sensorstd+=' '+sensorobj.location+': '+sensorobj.value.toFixed(2)+sensorobj.unit;
});
+ sensorstd+=' | ';
+ }
+ if (data.sensors.ext_illumination)
+ {
+ sensorstd+='Licht';
+ $.each( data.sensors.ext_illumination, function(s, sensorobj) {
+ sensorstd+=' '+sensorobj.location+': '+sensorobj.value;
+ });
+ sensorstd+=' | ';
+ }
+ if (data.sensors.door_locked)
+ {
+ sensorstd+='Eingangstür';
+ $.each( data.sensors.door_locked, function(s, sensorobj) {
+ var lockstatus="Auf";
+ if (sensorobj.value) { lockstatus = "Zu"; }
+ sensorstd+=' '+sensorobj.location+': '+lockstatus;
+ });
+ sensorstd+=' | ';
+ }
+ if (data.sensors.ext_door_ajar)
+ {
+ sensorstd+='Türkontakt';
+ $.each( data.sensors.ext_door_ajar, function(s, sensorobj) {
+ var lockstatus="Auf";
+ if (sensorobj.value) { lockstatus = "Zu"; }
+ sensorstd+=' '+sensorobj.location+': '+lockstatus;
+ });
+ sensorstd+=' | ';
+ }
+ if (data.sensors.ext_dust)
+ {
+ sensorstd+='Staub';
+ $.each( data.sensors.ext_dust, function(s, sensorobj) {
+ sensorstd+=' '+sensorobj.location+': '+sensorobj.value+sensorobj.unit+' | ';
+ });
+ sensorstd+='';
+
+ }
+ if (sensorstd != "")
+ {
+ sensorshtml='';
+ document.getElementById('sensor_status').innerHTML=sensorshtml;
}
- }
- if (sensorstd != "")
- {
- sensorshtml='';
- document.getElementById('sensor_status').innerHTML=sensorshtml;
}
}
@@ -79,29 +249,6 @@ function updateAnwesenheitStatus()
//req.send(null);
var jqxhr = $.getJSON(url, writeAnwesenheitStatus);
}
-var anwesenheit_timer = window.setInterval("updateAnwesenheitStatus()", 10000);
-
-function updateSensors()
-{
- //reloadImg(document.getElementById("tempsensor"));
- reloadImg(document.getElementById("movementsensor"));
- reloadImg(document.getElementById("lightsensor"));
-}
-
-var timer;
-var seconds = 0;
-var schedule = Array()
-
-$(document).ready(function()
-{
- updateDateClock(new Date());
- setInterval("clock()", 500);
- updateAnwesenheitStatus();
- loadCalendar();
- setInterval("updateAnwesenheitStatus()", 10000);
- setInterval("loadCalendar()", 100000);
- setInterval("updateSensors()", 50000);
-});
function updateDateClock(now)
{
@@ -128,7 +275,7 @@ function highlightEntry(idx, color, value)
}
}
-
+var seconds = 0;
function clock(now)
{
var now = new Date(new Date().valueOf() + 300);
@@ -139,25 +286,69 @@ function clock(now)
}
}
-//function updateSchedule()
-//{
-// $.ajax({type: "GET", url: "/export/schedules.php", data: "days=3&start=-1", dataType: "xml", error: showError, success: parseXml});
-//}
-
function showError(XMLHttpRequest, textStatus, errorThrown)
{
alert("Error: " + textStatus);
}
-function reloadImg(element)
+function updateSensors()
{
- //var image = document.getElementById("theText");
- if(element.complete) {
- var new_image = new Image();
- //set up the new image
- new_image.id = element.id;
- new_image.src = element.src;
+ reloadImg(document.getElementById("tempsensor"));
+ reloadImg(document.getElementById("movementsensor"));
+ reloadImg(document.getElementById("lightsensor"));
+}
+
+function IsImageOk(img) {
+ if (!img.complete)
+ {
+ return false;
+ }
+ if (typeof img.naturalWidth == "undefined" || (typeof img.naturalWidth == "number" && img.naturalWidth == 0))
+ {
+ return false;
+ }
+ return true;
+}
+
+var img_orig_src = {};
+function reloadImgAlt(element)
+{
+ if(element.complete)
+ {
+ var new_image = new Image();
+ //set up the new image
+ new_image.id = element.id;
+ new_image.className = element.className;
+ if (! img_orig_src[element.id])
+ {
+ img_orig_src[element.id] = element.src;
+ }
+ new_image.src = img_orig_src[element.id] + "?dt="+Math.floor(new Date().getTime() / 1000).toString();
+ if (IsImageOk(new_image))
+ {
element.parentNode.insertBefore(new_image,element);
element.parentNode.removeChild(element);
+ }
}
}
+function reloadImg(element)
+{
+ if (! img_orig_src[element.id])
+ {
+ img_orig_src[element.id] = element.src;
+ }
+ element.src = img_orig_src[element.id] + "?dt="+Math.floor(new Date().getTime() / 1000).toString();
+}
+
+$(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);
+});