Commit d2eafd42 authored by Johannes Bill's avatar Johannes Bill

weekview

parent 3645a344
...@@ -6,6 +6,7 @@ var andMaybeString = "und nach Absprache geöffnet"; ...@@ -6,6 +6,7 @@ var andMaybeString = "und nach Absprache geöffnet";
//var andMaybeString = "unag"; //var andMaybeString = "unag";
moment.locale("de"); moment.locale("de");
const timeSeparator = " - ";
function merge(a, b) { function merge(a, b) {
...@@ -93,7 +94,7 @@ function createWeekView(dataObj, now) { ...@@ -93,7 +94,7 @@ function createWeekView(dataObj, now) {
var tooltip = []; var tooltip = [];
for (var j = 0; j < day.oHoursMaybe.length; j++) { for (var j = 0; j < day.oHoursMaybe.length; j++) {
var e = day.oHoursMaybe[j]; var e = day.oHoursMaybe[j];
tooltip.push(formatTime(e[0]) + " - " + formatTime(e[1])); tooltip.push(formatTime(e[0]) + timeSeparator + formatTime(e[1]));
} }
tooltip = tooltip.join("<br>"); tooltip = tooltip.join("<br>");
tooltip = ' data-uk-tooltip title="' + tooltip + '"'; tooltip = ' data-uk-tooltip title="' + tooltip + '"';
...@@ -201,7 +202,7 @@ function createWeekViewVerticalRaw(dataObj, now, className, offset, addDayOfWeek ...@@ -201,7 +202,7 @@ function createWeekViewVerticalRaw(dataObj, now, className, offset, addDayOfWeek
var tooltip = []; var tooltip = [];
for (var j = 0; j < day.oHoursMaybe.length; j++) { for (var j = 0; j < day.oHoursMaybe.length; j++) {
var e = day.oHoursMaybe[j]; var e = day.oHoursMaybe[j];
tooltip.push(formatTime(e[0]) + " - " + formatTime(e[1])); tooltip.push(formatTime(e[0]) + timeSeparator + formatTime(e[1]));
} }
tooltip = tooltip.join("<br>"); tooltip = tooltip.join("<br>");
tooltip = ' data-uk-tooltip title="' + tooltip + '"'; tooltip = ' data-uk-tooltip title="' + tooltip + '"';
...@@ -349,7 +350,7 @@ function createMonthView(dataObj, now, monthOffset) { ...@@ -349,7 +350,7 @@ function createMonthView(dataObj, now, monthOffset) {
tooltip = []; tooltip = [];
for (var j = 0; j < day.oHours.length; j++) { for (var j = 0; j < day.oHours.length; j++) {
var e = day.oHours[j]; var e = day.oHours[j];
tooltip.push(formatTime(e[0]) + " - " + formatTime(e[1])); tooltip.push(formatTime(e[0]) + timeSeparator + formatTime(e[1]));
} }
tooltip = tooltip.join("<br>"); tooltip = tooltip.join("<br>");
tooltip = ' data-uk-tooltip title="' + tooltip + '"'; tooltip = ' data-uk-tooltip title="' + tooltip + '"';
...@@ -412,14 +413,13 @@ function formatTime(date) { ...@@ -412,14 +413,13 @@ function formatTime(date) {
} }
function weekViewData(dataObj, now) { function weekViewData(dataObj, now) {
var noOfDays = 7; var noOfDays = 7;
var offset = now.getDay() - 1; var offset = now.getDay() - 1;
var startDate = new Date(now.getFullYear(), now.getMonth(), now.getDate() - offset); var startDate = new Date(now.getFullYear(), now.getMonth(), now.getDate() - offset);
var endDate = new Date(now.getFullYear(), now.getMonth(), now.getDate() + noOfDays - offset); var endDate = new Date(now.getFullYear(), now.getMonth(), now.getDate() + noOfDays - offset);
var oHours = transformData(dataObj, startDate, endDate); var rawHours = transformData(dataObj, startDate, endDate);
function getHourSpan(oHours) { function getHourSpan(oHours) {
var hourMin = 24; var hourMin = 24;
...@@ -428,39 +428,77 @@ function weekViewData(dataObj, now) { ...@@ -428,39 +428,77 @@ function weekViewData(dataObj, now) {
var dElem = oHours[i].oHours; var dElem = oHours[i].oHours;
for (var j = 0; j < dElem.length; j++) { for (var j = 0; j < dElem.length; j++) {
var dElem0 = dElem[j][0].getHours(); var dElem0 = dElem[j][0].getHours();
if(dElem0 < hourMin) hourMin = dElem0; if (dElem0 < hourMin) hourMin = dElem0;
var dElem1 = dElem[j][1].getHours(); var dElem1 = dElem[j][1].getHours();
if(dElem1 > hourMax) hourMax = dElem1 + (dElem[j][1].getMinutes() > 0 ? 1 : 0) if (dElem1 > hourMax) hourMax = dElem1 + (dElem[j][1].getMinutes() > 0 ? 1 : 0)
} }
} }
return [hourMin, hourMax]; return [hourMin, hourMax];
} }
var hourSpan = getHourSpan(oHours); var hourSpan = getHourSpan(rawHours);
if (hourSpan[0] > 6) hourSpan[0] = 6;
if (hourSpan[1] < 20) hourSpan[1] = 20;
var hourDiff = hourSpan[1] - hourSpan[0];
var timeLabels = [];
for (var hour = hourSpan[0]; hour <= hourSpan[1]; hour++) {
timeLabels.push({
class: "label-time",
top: 100 * ((hour - hourSpan[0]) / hourDiff).toFixed(3) + "%",
text: hour.toString()
})
}
var dayLabels = [];
var oHours = rawHours.map(function (day) {
dayLabels.push({
class: "label-day-" + day.date.getDay(),
text: moment(day.date).format("dd Do MMMM")
});
var date0 = new Date(day.date);
date0.setHours(hourSpan[0]);
var date1 = new Date(day.date);
date1.setHours(hourSpan[1]);
var dateDiff = date1 - date0;
var mappedHours = day.oHours.map(function (elem) {
var height = (elem[1] - elem[0]) / dateDiff;
var top = (elem[0] - date0) / dateDiff;
return {
class: "day-" + day.date.getDay(),
top: 100 * top.toFixed(3) + "%",
height: 100 * height.toFixed(3) + "%",
text: formatTime(elem[0]) + timeSeparator + formatTime(elem[1])
}
});
return mappedHours;
});
return oHours; return {
timeLabels: timeLabels,
dayLabels: dayLabels,
oHours: oHours
};
} }
function transformData(dataObj, startDate, endDate) { function transformData(dataObj, startDate, endDate) {
var data = dataObj.intervals.map(function (e) { var data = dataObj.intervals.map(function (e) {
return e; return e;
return { /* return {
0: e[0], 0: e[0],
1: e[1], 1: e[1],
maybe: false maybe: false
} }*/
}); });
var dataMaybe = dataObj.maybeIntervals.map(function (e) { var dataMaybe = dataObj.maybeIntervals.map(function (e) {
return e; return e;
return { /* return {
0: e[0], 0: e[0],
1: e[1], 1: e[1],
maybe: true maybe: true
} }*/
}); });
var dataMerged = merge(data, dataMaybe); var dataMerged = merge(data, dataMaybe);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment