summaryrefslogtreecommitdiffstats
path: root/modules-available/locationinfo/templates/frontend-default.html
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/locationinfo/templates/frontend-default.html')
-rwxr-xr-xmodules-available/locationinfo/templates/frontend-default.html181
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>