diff options
Diffstat (limited to 'modules-available/locationinfo/templates/frontend-default.html')
-rwxr-xr-x | modules-available/locationinfo/templates/frontend-default.html | 181 |
1 files changed, 40 insertions, 141 deletions
diff --git a/modules-available/locationinfo/templates/frontend-default.html b/modules-available/locationinfo/templates/frontend-default.html index fc9c3eac..92cad055 100755 --- a/modules-available/locationinfo/templates/frontend-default.html +++ b/modules-available/locationinfo/templates/frontend-default.html @@ -29,7 +29,7 @@ optional: <link rel='stylesheet' type='text/css' href='{{dirprefix}}modules/js_jqueryui/style.css'/> <link rel='stylesheet' type='text/css' href='{{dirprefix}}modules/js_weekcalendar/style.css'/> - <style type='text/css'> + <style type="text/css"> body { margin: 0; @@ -237,17 +237,12 @@ optional: background: #000; } - .OFF .screen-inner { + .OFFLINE .screen-inner { background: #332; } - /* - .OFF .screen-inner:after { - content: "\01F4A4"; - } - */ - - .IDLE .screen-inner { + .IDLE .screen-inner, + .STANDBY .screen-inner { background: #250; } @@ -348,6 +343,7 @@ optional: <script type='text/javascript' src='{{dirprefix}}script/jquery.js'></script> <script type='text/javascript' src='{{dirprefix}}modules/js_jqueryui/clientscript.js'></script> <script type='text/javascript' src="{{dirprefix}}modules/js_weekcalendar/clientscript.js"></script> + <script type='text/javascript' src='{{dirprefix}}modules/locationinfo/frontend/frontendscript.js'></script> </head> <body> @@ -390,6 +386,10 @@ optional: })(); $(document).ready(function () { + if (!SetUpDate) { + fatalError("js_weekcalendar not loaded"); + return; + } applyConfig({{{config}}}); }); @@ -429,13 +429,13 @@ optional: 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]); + time = new Date(p[0], (p[1] - 1), p[2], p[3], p[4], p[5]); console.log(time); } - if (time === false || isNaN(time.getTime()) || time.getYear() < 2010) { + if (time === false || isNaN(time.getTime()) || time.getFullYear() < 2010) { time = new Date(result.time); } - if (isNaN(time.getTime()) || time.getYear() < 2010) { + if (isNaN(time.getTime()) || time.getFullYear() < 2010) { time = new Date(); } SetUpDate(time); @@ -981,10 +981,11 @@ optional: var columnWidth = $cal.find(".wc-day-1").width(); if (room.config.scaledaysauto) { - var result = ($cal.weekCalendar("option", "daysToShow") * columnWidth) / 100; + var result = ($cal.weekCalendar("option", "daysToShow") * columnWidth) / 130; result = parseInt(Math.min(Math.max(Math.abs(result), 1), 7)); if (result !== $cal.weekCalendar("option", "daysToShow")) { $cal.weekCalendar("option", "daysToShow", result); + columnWidth = $cal.find(".wc-day-1").width(); } } if (((!room.config.scaledaysauto) || $cal.weekCalendar("option", "daysToShow") === 1) && columnWidth < 85) { @@ -1008,21 +1009,21 @@ optional: clientHeight -= 6; var height = clientHeight / (room.openTimes * $cal.weekCalendar("option", "timeslotsPerHour")); - if (height < 30) { height = 30; } + var fontHeight = Math.min(height, columnWidth / 2.1); // Scale calendar font - if (height > 120) { + if (fontHeight > 120) { $cal.weekCalendar("option", "textSize", 28); } - else if (height > 100) { + else if (fontHeight > 100) { $cal.weekCalendar("option", "textSize", 24); - } else if (height > 80) { + } else if (fontHeight > 80) { $cal.weekCalendar("option", "textSize", 22); - } else if (height > 70) { + } else if (fontHeight > 70) { $cal.weekCalendar("option", "textSize", 20); - } else if (height > 60) { + } else if (fontHeight > 60) { $cal.weekCalendar("option", "textSize", 14); } else { $cal.weekCalendar("option", "textSize", 13); @@ -1041,48 +1042,6 @@ optional: } /** - * used for countdown - * computes the time difference between 2 Date objects - * @param {Date} a - * @param {Date} b - * @returns {string} printable time - */ - function GetTimeDiferenceAsString(a, b) { - if (!a || !b) { - return ""; - } - var milliseconds = a.getTime() - b.getTime(); - var days = Math.floor((milliseconds / (1000 * 60 * 60 * 24)) % 31); - if (days !== 0) { - // don't show? - return ""; - } - var seconds = Math.floor((milliseconds / 1000) % 60); - milliseconds -= seconds * 1000; - var minutes = Math.floor((milliseconds / (1000 * 60)) % 60); - milliseconds -= minutes * 1000 * 60; - var hours = Math.floor((milliseconds / (1000 * 60 * 60)) % 24); - - if (globalConfig.prettytime) { - var str = ''; - if (hours > 0) { - str += hours + 'muh'; - } - } - - if (minutes < 10) { - minutes = "0" + minutes; - } - if (globalConfig.eco) { - return hours + ":" + minutes; - } - if (seconds < 10) { - seconds = "0" + seconds; - } - return hours + ":" + minutes + ":" + seconds; - } - - /** * returns next closing time of a given room * @param room * @returns {Date} Object of next closing @@ -1113,32 +1072,6 @@ optional: return null; } - - /** - * checks if a room is on a given date/time open - * @param date Date Object - * @param room Room object - * @returns {Boolean} for open or not - */ - function IsOpen(date, room) { - if (!room.openingTimes || room.openingTimes.length === 0) return true; - var tmp = room.openingTimes[date.getDay()]; - if (!tmp) return false; - var openDate = new Date(date.getTime()); - var closeDate = new Date(date.getTime()); - for (var i = 0; i < tmp.length; i++) { - openDate.setHours(tmp[i].HourOpen); - openDate.setMinutes(tmp[i].MinutesOpen); - closeDate.setHours(tmp[i].HourClose); - closeDate.setMinutes(tmp[i].MinutesClose); - if (openDate < date && closeDate > date) { - return true; - } - } - return false; - } - - /** * Returns next Opening * @param room Room Object @@ -1199,7 +1132,7 @@ optional: var newText = false, newTime = false; var seats = room.freePcs; if (tmp.state === 'closed' || tmp.state === 'CalendarEvent' || tmp.state === 'Free') { - newTime = GetTimeDiferenceAsString(tmp.end, MyDate()); + newTime = GetTimeDiferenceAsString(tmp.end, MyDate(), globalConfig); } else if (!same) { newTime = ''; } @@ -1351,7 +1284,6 @@ optional: function initRoomLayout(room) { var maxX = false, maxY = false; var minX = false, minY = false; - var xDifference, yDifference; var x, y; generateRoomLayoutDiv((100 - room.config.scale) + "%", room); @@ -1380,15 +1312,12 @@ optional: } } - xDifference = maxX - minX; - yDifference = maxY - minY; - - room.xDifference = xDifference; - room.yDifference = yDifference; room.minX = minX; room.minY = minY; - room.maxX = maxX; - room.maxY = maxY; + room.maxX = maxX + picSizeX; + room.maxY = maxY + picSizeY; + room.xDifference = (room.maxX - room.minX); + room.yDifference = (room.maxY - room.minY); setUpRoom(room, layout); scaleRoom(room); @@ -1401,7 +1330,7 @@ optional: * @param room Room Object */ function generateOffsetAndScale(room) { - var clientHeight; + var clientHeight, clientWidth; if (room.config.vertical && room.config.mode === 1) { clientHeight = room.$.container.height() - (room.$.calendar.position().top + room.$.calendar.height()); @@ -1409,37 +1338,21 @@ optional: clientHeight = room.$.container.height() - (room.$.header.height() + 5); } - var clientWidth = room.$.layout.width(); + clientWidth = room.$.layout.width(); - var scaleX; - if (room.xDifference !== 0) { - scaleX = clientWidth / room.xDifference; - } else { - scaleX = clientWidth; + var scaleX = clientWidth / picSizeX, scaleY = clientHeight / picSizeY; + if (room.xDifference > 0) { + scaleX = (clientWidth - 20) / room.xDifference; } - var scaleY; - if (room.yDifference !== 0) { - scaleY = clientHeight / room.yDifference; - } else { - scaleY = clientHeight; - } - var scaleYs = (clientHeight - (picSizeY * scaleY)) / room.yDifference; - var scaleXs = (clientWidth - (picSizeX * scaleX)) / room.xDifference; - if (scaleYs <= 0) { - scaleYs = 9999; - } - if (scaleXs <= 0) { - scaleXs = 9999; + if (room.yDifference > 0) { + scaleY = (clientHeight - 20) / room.yDifference; } - room.scale = Math.min(scaleYs, scaleY, scaleXs, scaleX, (clientHeight * 0.9) / picSizeY, (clientWidth * 0.9) / picSizeX); - room.xOffset = 0 - room.minX; - room.yOffset = 0 - room.minY; - room.xOffset += ((1 / 2 * (clientWidth - (((room.maxX + room.xOffset) * room.scale) + picSizeX * room.scale))) / room.scale); - room.yOffset += ((1 / 2 * (clientHeight - (((room.maxY + room.yOffset) * room.scale) + picSizeY * room.scale))) / room.scale); + room.scale = Math.min(scaleY, scaleX); + room.xOffset = -room.minX * room.scale + (clientWidth - room.xDifference * room.scale) / 2; + room.yOffset = -room.minY * room.scale + (clientHeight - room.yDifference * room.scale) / 2; } - /** * adds images for each pc to Room Layout * @param room Room Object @@ -1575,11 +1488,11 @@ optional: for (var i = 0; i < update.length; i++) { var $div = $("#pc_" + room.id + "_" + update[i].id); // Pc free - if (update[i].pcState === "IDLE" || update[i].pcState === "OFF") { + if (update[i].pcState === "IDLE" || update[i].pcState === "OFFLINE" || update[i].pcState === "STANDBY") { freePcs++; } - $div.removeClass('BROKEN OFF IDLE OCCUPIED'.replace(update[i].pcState, '')).addClass(update[i].pcState); + $div.removeClass('BROKEN OFFLINE IDLE OCCUPIED STANDBY'.replace(update[i].pcState, '')).addClass(update[i].pcState); } room.freePcs = freePcs; UpdateRoomHeader(room); @@ -1608,6 +1521,7 @@ optional: function scaleRoom(room) { if (!room.$.layout || !room.$.layout.is(':visible')) return; room.resizeRoom = false; + if (!room.layout) return; generateOffsetAndScale(room); room.$.layout.css('font-size', Math.floor(room.scale) + 'pt'); for (var i = 0; i < room.layout.length; i++) { @@ -1617,8 +1531,8 @@ optional: room.layout[i].$div.css({ width: pcWidth, height: pcHeight, - top: ((room.layout[i].y + room.yOffset) * room.scale) + "px", - left: ((room.layout[i].x + room.xOffset) * room.scale) + "px" + top: (room.layout[i].y * room.scale + room.yOffset) + "px", + left: (room.layout[i].x * room.scale + room.xOffset) + "px" }); } } @@ -1744,20 +1658,5 @@ optional: }, interval); } - /** - * Convert passed argument to integer if possible, return NaN otherwise. - * The difference to parseInt() is that leading zeros are ignored and not - * interpreted as octal representation. - * - * @param str string or already a number - * @return {number} str converted to number, or NaN - */ - function toInt(str) { - var t = typeof str; - if (t === 'number') return str | 0; - if (t === 'string') return parseInt(str.replace(/^0+([^0])/, '$1')); - return NaN; - } - </script> </html> |