diff options
Diffstat (limited to 'modules-available/locationinfo')
7 files changed, 66 insertions, 25 deletions
diff --git a/modules-available/locationinfo/api.inc.php b/modules-available/locationinfo/api.inc.php index 767066f3..05af4111 100644 --- a/modules-available/locationinfo/api.inc.php +++ b/modules-available/locationinfo/api.inc.php @@ -257,7 +257,7 @@ function getConfig($paneluuid) $config['ts'] = (int)$panel['lastchange']; $config['locations'] = array_values($config['locations']); - $config['time'] = date('Y-m-d H:i:s'); + $config['time'] = date('Y-n-j-G-') . (int)date('i') . '-' . (int)(date('s')); return $config; } diff --git a/modules-available/locationinfo/frontend/doorsign.html b/modules-available/locationinfo/frontend/doorsign.html index 97504284..8acdb07b 100755 --- a/modules-available/locationinfo/frontend/doorsign.html +++ b/modules-available/locationinfo/frontend/doorsign.html @@ -58,6 +58,14 @@ optional: justify-content: space-between; } + .pull-left { + float: left; + } + + .clearfix { + clear: both; + } + .col { padding: 0 4px; color: white; @@ -67,6 +75,8 @@ optional: } .col-square { + order: 1000; + float: right; width: 46pt; width: 4vw; height: 46pt; @@ -147,6 +157,7 @@ optional: .center { text-align: center; + margin: auto; } .room-layout { @@ -439,7 +450,15 @@ optional: return; } - var time = new Date(result.time); + var time = false; + var p = result.time.split('-'); + if (p.length === 6) { + time = new Date(p[0], p[1], p[2], p[3], p[4], p[5]); + console.log(time); + } + if (time === false || isNaN(time.getTime()) || time.getYear() < 2010) { + time = new Date(result.time); + } if (isNaN(time.getTime()) || time.getYear() < 2010) { time = new Date(); } @@ -587,7 +606,7 @@ optional: $("body").append($loc); room.$.container = $loc; - room.$.locationName = $('<div>').addClass('col').addClass('header-font'); + room.$.locationName = $('<div>').addClass('col').addClass('header-font').addClass('pull-left'); room.$.currentEvent = $("<span>").addClass('nowrap'); room.$.currentRemain = $("<span>").addClass('nowrap').addClass('timer'); room.$.seatsCounter = $('<span>').addClass('seats-counter'); @@ -595,10 +614,11 @@ optional: var $header = $('<div>').addClass('row').addClass('count-' + roomIds.length); $header.append(room.$.locationName); - $header.append($('<div>').addClass('col header-font center').append(room.$.currentEvent).append(' ').append(room.$.currentRemain)); $header.append(room.$.seatsBackground); + $header.append($('<div>').addClass('col header-font center').append(room.$.currentEvent).append(' ').append(room.$.currentRemain)); room.$.header = $header; $loc.append($header); + $header.append('<div class="clearfix">'); if (room.name !== null) { room.$.locationName.text(room.name); @@ -941,6 +961,9 @@ optional: console.log("Error: Calendar data was empty or malformed."); return; } + if (json.length === 0) { + console.log("Notice: Calendar already empty from server"); + } var now = MyDate().getTime(); json = json.filter(function (el) { if (!el.title || !el.start || !el.end) return false; diff --git a/modules-available/locationinfo/frontend/jquery-week-calendar/jquery.weekcalendar.js b/modules-available/locationinfo/frontend/jquery-week-calendar/jquery.weekcalendar.js index 63ea1ecd..e84b9057 100755 --- a/modules-available/locationinfo/frontend/jquery-week-calendar/jquery.weekcalendar.js +++ b/modules-available/locationinfo/frontend/jquery-week-calendar/jquery.weekcalendar.js @@ -43,7 +43,7 @@ function MyDate() { return { options: { - date: MyDate(), + date: MyDate, timeFormat: null, dateFormat: 'M d, Y', alwaysDisplayTimeMinutes: true, @@ -1441,6 +1441,7 @@ function MyDate() { $.each(eventsToRender, function(i, calEvent) { // render a multi day event as various event : // thanks to http://github.com/fbeauchamp/jquery-week-calendar + if (!calEvent || !calEvent.start || !calEvent.end) return; var initialStart = new Date(calEvent.start); var initialEnd = new Date(calEvent.end); var maxHour = self.options.businessHours.limitDisplay ? self.options.businessHours.end : 24; @@ -2023,9 +2024,6 @@ function MyDate() { * Clean specific event */ _cleanEvent: function(event) { - if (event.date) { - event.start = event.date; - } event.start = this._cleanDate(event.start); event.end = this._cleanDate(event.end); if (!event.end) { @@ -2205,10 +2203,13 @@ function MyDate() { } // this is a human readable date - return Date.parse(d) || new Date(d); + if (d[d.length - 1] !== 'Z') d += 'Z'; + var o = new Date(d); + o.setTime(o.getTime() + (o.getTimezoneOffset() * 60 * 1000)); + return o; } - if (typeof d == 'number') { + if (typeof d === 'number') { return new Date(d); } @@ -2223,12 +2224,12 @@ function MyDate() { var returnStr = ''; for (var i = 0; i < format.length; i++) { var curChar = format.charAt(i); - if (i != 0 && format.charAt(i - 1) == '\\') { + if (i !== 0 && format.charAt(i - 1) === '\\') { returnStr += curChar; } else if (this._replaceChars[curChar]) { returnStr += this._replaceChars[curChar](date, this); - } else if (curChar != '\\') { + } else if (curChar !== '\\') { returnStr += curChar; } } diff --git a/modules-available/locationinfo/inc/coursebackend.inc.php b/modules-available/locationinfo/inc/coursebackend.inc.php index 447a5598..b47fc2c6 100644 --- a/modules-available/locationinfo/inc/coursebackend.inc.php +++ b/modules-available/locationinfo/inc/coursebackend.inc.php @@ -179,7 +179,9 @@ abstract class CourseBackend $remoteIds[$row['locationid']] = $row['serverlocationid']; } } + error_log('Fetching ' . $this->serverId); $backendResponse = $this->fetchSchedulesInternal($remoteIds); + error_log('Reply: ' . print_r($backendResponse, true)); if ($backendResponse === false) { return false; } diff --git a/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php b/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php index a9756dda..4c2dde6c 100644 --- a/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php +++ b/modules-available/locationinfo/inc/coursebackend/coursebackend_davinci.inc.php @@ -122,8 +122,8 @@ class CourseBackend_Davinci extends CourseBackend $subject = isset($lesson['Subject']) ? $lesson['Subject'] : '???'; $timetable[] = array( 'title' => $subject, - 'start' => $date . " " . $start . ':00', - 'end' => $date . " " . $end . ':00' + 'start' => $date . "T" . $start . ':00', + 'end' => $date . "T" . $end . ':00' ); } $schedules[$roomId] = $timetable; diff --git a/modules-available/locationinfo/inc/coursebackend/coursebackend_dummy.inc.php b/modules-available/locationinfo/inc/coursebackend/coursebackend_dummy.inc.php index 0e5d654e..e2577284 100644 --- a/modules-available/locationinfo/inc/coursebackend/coursebackend_dummy.inc.php +++ b/modules-available/locationinfo/inc/coursebackend/coursebackend_dummy.inc.php @@ -94,17 +94,32 @@ class CourseBackend_Dummy extends CourseBackend { $a = array(); foreach ($roomId as $id) { - $x['id'] = $id; - $calendar['title'] = "test exam"; - $calendar['start'] = "2017-3-08 13:00:00"; - $calendar['end'] = "2017-3-08 16:00:00"; - $calarray = array(); - $calarray[] = $calendar; - $x['calendar'] = $calarray; - $a[$id] = $calarray; + $x = array(); + $time = strtotime('today'); + $end = strtotime('+7 days', $time); + srand(crc32($id) ^ $time); + $last = $time; + do { + do { + $time += rand(4, 10) * 900; + $h = date('G', $time); + } while ($h < 7 || $h > 19); + $today = strtotime('today', $time); + if ($today !== $last) { + srand(crc32($id) ^ $today); + $last = $today; + } + $dur = rand(2,6) * 1800; + $x[] = array( + 'title' => 'Test ' . rand(1000,9999), + 'start' => date('Y-m-d\TH:i:s', $time), + 'end' => date('Y-m-d\TH:i:s', $time + $dur), + ); + $time += $dur; + } while ($time < $end); + $a[$id] = $x; } - return $a; } diff --git a/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php b/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php index 65f52e6b..ef262522 100644 --- a/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php +++ b/modules-available/locationinfo/inc/coursebackend/coursebackend_hisinone.inc.php @@ -283,8 +283,8 @@ class CourseBackend_HisInOne extends CourseBackend $endTime = $this->getArrayPath($plannedDate, '/hisendtime')[0]; $tTables[$eventRoomId][] = array( 'title' => $name[0], - 'start' => $eventDate . " " . $startTime, - 'end' => $eventDate . " " . $endTime + 'start' => $eventDate . "T" . $startTime, + 'end' => $eventDate . "T" . $endTime ); } } |