diff --git a/frontend/www/app.js b/frontend/www/app.js index 12de3fa..d3617f0 100644 --- a/frontend/www/app.js +++ b/frontend/www/app.js @@ -1,5 +1,5 @@ const API_BASE = - "http://localhost:8000"; + "/api"; @@ -491,12 +491,14 @@ async function handleJoinRoom(event){ // ---------- calendar (week view) ---------- -const CALENDAR_HOUR_HEIGHT = 48; +const CALENDAR_SLOT_HOURS = 2; +const CALENDAR_SLOT_HEIGHT = 48; const CALENDAR_START_HOUR = 0; const CALENDAR_END_HOUR = 24; - +const PIXELS_PER_MINUTE = + CALENDAR_SLOT_HEIGHT / (CALENDAR_SLOT_HOURS * 60); function isEventCancelled(event){ @@ -620,25 +622,31 @@ function buildWeekCalendarHtml(events, offset){ (CALENDAR_END_HOUR - CALENDAR_START_HOUR) * 60; let trackHeight = - (CALENDAR_END_HOUR - CALENDAR_START_HOUR) * CALENDAR_HOUR_HEIGHT; - + ((CALENDAR_END_HOUR - CALENDAR_START_HOUR) / CALENDAR_SLOT_HOURS) + * CALENDAR_SLOT_HEIGHT; // time gutter let hourRows = ""; - for(let h = CALENDAR_START_HOUR; h < CALENDAR_END_HOUR; h++){ + for( + let h = CALENDAR_START_HOUR; + h < CALENDAR_END_HOUR; + h += CALENDAR_SLOT_HOURS + ){ hourRows += ` -
+
${String(h).padStart(2, "0")}:00
`; } - // day columns let dayColumns = @@ -673,13 +681,23 @@ function buildWeekCalendarHtml(events, offset){ let placed = dayEvents.map(event => { + function parseLocalDate(dateString){ + let parts = dateString.split(/[- :]/); - let start = - new Date(event.start_time); + return new Date( + parts[0], + parts[1] - 1, + parts[2], + parts[3], + parts[4] + ); + } + + let start = parseLocalDate(event.start_time); let end = event.end_time - ? new Date(event.end_time) + ? parseLocalDate(event.end_time) : new Date(start.getTime() + 30 * 60000); let startMinutes = @@ -715,8 +733,14 @@ function buildWeekCalendarHtml(events, offset){ let blocksHtml = placed.map(p => { - let topPct = - (p.startMinutes / totalMinutes) * 100; + let topPx = + (p.startMinutes - CALENDAR_START_HOUR * 60) + * PIXELS_PER_MINUTE; + + + let heightPx = + (p.endMinutes - p.startMinutes) + * PIXELS_PER_MINUTE; let heightPct = ((p.endMinutes - p.startMinutes) / totalMinutes) * 100; @@ -732,15 +756,25 @@ function buildWeekCalendarHtml(events, offset){ let timeLabel = new Date(p.event.start_time) - .toLocaleTimeString("default", { hour: "2-digit", minute: "2-digit" }); - - + .toLocaleTimeString("nl-NL", { + hour: "2-digit", + minute: "2-digit", + hour12: false + }); + + console.log({ + title: p.event.title, + startMinutes: p.startMinutes, + endMinutes: p.endMinutes, + topPx, + heightPx + }); return `