From 36240f6ae81a1e2df48b6c92d5b0367ae1f505b7 Mon Sep 17 00:00:00 2001 From: Michael Scherle Date: Mon, 6 Feb 2017 14:28:54 +0300 Subject: frontend: panel now shows current calendar events and a countdown, opening times still missing --- modules-available/locationinfo/frontend/panel.html | 52 +++++++++++++++++----- 1 file changed, 40 insertions(+), 12 deletions(-) (limited to 'modules-available/locationinfo/frontend/panel.html') diff --git a/modules-available/locationinfo/frontend/panel.html b/modules-available/locationinfo/frontend/panel.html index e4f0e92a..fd7287e2 100644 --- a/modules-available/locationinfo/frontend/panel.html +++ b/modules-available/locationinfo/frontend/panel.html @@ -88,16 +88,15 @@ var startdate; var roomidsString = ""; var lastPcUpdate; + var lastTimeTableUpdate; var pcStateUpdateTime = 60; // in seconds + var TimeTableUpdateTime = 60*30; //in seconds $(document).ready(function () { //temp SetUpDate(new Date()); init(); - console.log(roomidsString); - - }); function init() { @@ -169,25 +168,47 @@ lastPcUpdate = new MyDate(); }); } - // todo get opeing time and roomplan - for (var property in rooms) { - upDateRoomState(rooms[property]); + if(lastTimeTableUpdate ==null || (new MyDate().getTime()-lastTimeTableUpdate.getTime()) > TimeTableUpdateTime*1000){ + $.getJSON("../../../api.php?do=locationinfo&action=calendars&ids=" + roomidsString, function (result) { + UpdateTimeTables(result); + lastTimeTableUpdate = new MyDate(); + }); + } + + // todo get opeing time + if(lastTimeTableUpdate != null && lastPcUpdate !=null ) { + for (var property in rooms) { + upDateRoomState(rooms[property]); + } } } + function UpdateTimeTables(json) { + var l = json.length; + for (var i = 0; i < l;i++){ + rooms[json[i].id].timetable = json[i].calendar; + for (var property in rooms[json[i].id].timetable ) { + rooms[json[i].id].timetable[property].start = new Date(rooms[json[i].id].timetable[property].start); + rooms[json[i].id].timetable[property].end = new Date(rooms[json[i].id].timetable[property].end); + } + ComputeCurrentState(rooms[json[i].id]); + } + } function upDateRoomState(room) { if(room === undefined){ console.log("error"); return; } + var state = room.getState(); if(state.state == "ClaendarEvent") { updateCourseText(room.id,state.titel); + updateCoursTimer(room.id,GetTimeDiferenceAsString(state.end,MyDate())); } else if(state.state == "Free") { updateCourseText(room.id,"Frei"); - updateCoursTimer(room.id,GetTimeDiferenceAsString(MyDate,state.end)); + updateCoursTimer(room.id,GetTimeDiferenceAsString(state.end,MyDate())); } else if(state.state == "FreeNoEnd") { updateCourseText(room.id,"Frei"); updateCoursTimer(room.id,""); @@ -203,7 +224,7 @@ function updatePcStates(json){ var l = json.length; for (var i = 0; i < l;i++){ - console.log(json[i]); + updateRoomUsage(json[i].id,json[i].idle,json[i].occupied,json[i].off,json[i].broken) } @@ -252,6 +273,7 @@ return; } var closing = GetNextClosing(room); + var event = getNextEvent(room.timetable); // no event and no closing if (closing == null && event == null) { @@ -266,7 +288,7 @@ } // event is at the moment - if (event.start.getTime() < closing.getTime() && event.start.getTime() < new MyDate()) { + if ((closing==null||event.start.getTime() < closing.getTime()) && event.start.getTime() < new MyDate()) { room.state = {state: "ClaendarEvent", end: event.end, titel: event.title, next: ""}; return; } @@ -288,7 +310,9 @@ function IsOpenNow(room) { var now = new MyDate(); if (room.openingTimes == null) { - return false; + + // changes from falls needs testing + return true; } var tmp = room.openingTimes[now.getDay()]; if (tmp == null) { @@ -319,7 +343,7 @@ } //first element to consider if (event == null) { - if (json[i].start.getTime() > now.getTime()) { + if(json[i].start.getTime() > now.getTime()) { event = json[i]; } } @@ -369,6 +393,10 @@ var offset = 0; var bestdate; for (var a = 0; a < 7; a++) { + //Test + if(room.openingTimes=== null) { + return null; + } var tmp = room.openingTimes[day]; if (tmp != null) { for (var i = 0; i < tmp.length; i++) { @@ -476,6 +504,6 @@ -

Raum Übersicht

+

Raum Übersicht (more testing needed)

-- cgit v1.2.3-55-g7522