Skip to content

Commit 59ed228

Browse files
committed
time table - changed left and width calc for other views than "hours"
1 parent dbcb92f commit 59ed228

File tree

3 files changed

+163
-167
lines changed

3 files changed

+163
-167
lines changed

library/src/components/timetable/timeTableUtils.ts

Lines changed: 34 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,8 @@ export function calculateTimeSlotPropertiesForView(
305305
"minutes",
306306
)
307307
if (oneDayMinutes === 0) {
308-
const endOfDay = dayjs().endOf("day")
308+
// I set it on purpose to 23h 59min
309+
/*const endOfDay = dayjs().endOf("day")
309310
endHour = endOfDay.hour()
310311
endMinute = endOfDay.minute()
311312
oneDayMinutes = endOfDay.diff(
@@ -314,7 +315,8 @@ export function calculateTimeSlotPropertiesForView(
314315
.add(startHour, "hours")
315316
.add(endHour, "minutes"),
316317
"minutes",
317-
)
318+
)*/
319+
oneDayMinutes = 24 * 60
318320
}
319321

320322
const timeFrameDay: TimeFrameDay = Object.freeze({
@@ -325,28 +327,6 @@ export function calculateTimeSlotPropertiesForView(
325327
oneDayMinutes,
326328
})
327329

328-
// how many minutes has 1 time slot
329-
const unitDays = dayjs()
330-
.startOf("day")
331-
.add(1, unit)
332-
.diff(dayjs().startOf("day"), "days")
333-
//const timeSlotMinutes = unitDays * oneDayMinutes
334-
let timeSlotMinutes = timeStepsMinute
335-
switch (viewType) {
336-
case "days": {
337-
timeSlotMinutes = oneDayMinutes
338-
break
339-
}
340-
case "weeks": {
341-
timeSlotMinutes = 6 * 24 * 60 + oneDayMinutes
342-
break
343-
}
344-
case "months": {
345-
timeSlotMinutes = 29 * 24 * 60 + oneDayMinutes
346-
break
347-
}
348-
}
349-
350330
return Object.freeze({
351331
timeFrameDay,
352332
slotsArray,
@@ -422,24 +402,34 @@ export function getLeftAndWidth(
422402

423403
if (itemModEnd.isAfter(timeFrameEndEnd)) {
424404
itemModEnd = timeFrameEndEnd
425-
} else if (item.endDate.hour() === 0 && item.endDate.minute() === 0) {
405+
//} else if (item.endDate.hour() === 0 && item.endDate.minute() === 0) {
426406
//itemModEnd = itemModEnd.subtract(1, "second") // this is a hack to make the end time of the day inclusive
427407
//console.log("HACK APPLIED", itemModEnd)
428-
//itemModEnd = timeFrameEndEnd
429-
//.startOf("day")
430-
//.add(timeFrameDay.endHour, "hour")
431-
//.add(timeFrameDay.endMinute, "minutes")
408+
itemModEnd = timeFrameEndEnd
409+
.startOf("day")
410+
.add(timeFrameDay.endHour, "hour")
411+
.add(timeFrameDay.endMinute, "minutes")
432412
} else if (
433-
item.endDate.hour() > timeFrameDay.endHour ||
413+
((timeFrameDay.endHour > timeFrameDay.startHour ||
414+
(timeFrameDay.endHour === timeFrameDay.startHour &&
415+
timeFrameDay.endMinute > timeFrameDay.startMinute)) &&
416+
item.endDate.hour() > timeFrameDay.endHour) ||
434417
(item.endDate.hour() === timeFrameDay.endHour &&
435418
item.endDate.minute() > timeFrameDay.endMinute)
436419
) {
437-
if (timeFrameDay.endHour !== 0 && timeFrameDay.endMinute !== 0) {
438-
console.log("WARG", item, itemModEnd, timeFrameDay)
439-
itemModEnd = itemModEnd
440-
.startOf("day")
441-
.add(timeFrameDay.endHour, "hour")
442-
.add(timeFrameDay.endMinute, "minutes")
420+
console.log("WARG", item, itemModEnd, timeFrameDay)
421+
itemModEnd = itemModEnd
422+
.startOf("day")
423+
.add(timeFrameDay.endHour, "hour")
424+
.add(timeFrameDay.endMinute, "minutes")
425+
if (
426+
timeFrameDay.endHour < timeFrameDay.startHour ||
427+
(timeFrameDay.endHour === timeFrameDay.startHour &&
428+
timeFrameDay.endMinute <= timeFrameDay.startMinute)
429+
) {
430+
if (viewType !== "hours") {
431+
itemModEnd = itemModEnd.add(1, "day")
432+
}
443433
}
444434
}
445435
}
@@ -483,7 +473,7 @@ export function getLeftAndWidth(
483473
//width = endSlot + 1 - startSlot - (left + width)
484474
//width = endSlot - startSlot + width - left
485475

486-
if (width < 0) {
476+
if (width <= 0) {
487477
// this should not happen, but if it does, we need to log it to find the error
488478
console.error(
489479
"LPTimeTable - item with negative width found:",
@@ -636,7 +626,13 @@ export function getStartAndEndSlot(
636626
.add(timeFrameDay.endHour, "hours")
637627
.add(timeFrameDay.endMinute, "minutes")
638628
.add(1, viewType)
639-
.subtract(1, "day")
629+
if (
630+
timeFrameDay.endHour > timeFrameDay.startHour ||
631+
(timeFrameDay.endHour === timeFrameDay.startHour &&
632+
timeFrameDay.endMinute > timeFrameDay.startMinute)
633+
) {
634+
endSlotEnd = endSlotEnd.subtract(1, "day")
635+
}
640636
}
641637
if (item.startDate.isAfter(endSlotEnd)) {
642638
return { startSlot: endSlot, endSlot: endSlot, status: "after" }

0 commit comments

Comments
 (0)