From 5f8e86c91426c81b15c23669ed80a40aff7ad4eb Mon Sep 17 00:00:00 2001 From: Ricky Stretch Date: Tue, 17 Mar 2026 15:43:06 -0400 Subject: [PATCH] v0.9.53 schedule list bug fix --- .env.example | 2 +- backend/package.json | 2 +- backend/src/routes/schedule.js | 8 +++++++- build.sh | 2 +- frontend/package.json | 2 +- frontend/src/components/SchedulePage.jsx | 6 +++++- 6 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.env.example b/.env.example index 8cd5ef1..50ab360 100644 --- a/.env.example +++ b/.env.example @@ -10,7 +10,7 @@ PROJECT_NAME=jama # Image version to run (set by build.sh, or use 'latest') -JAMA_VERSION=0.9.52 +JAMA_VERSION=0.9.53 # App port — the host port Docker maps to the container PORT=3000 diff --git a/backend/package.json b/backend/package.json index 73d013a..65e5872 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "jama-backend", - "version": "0.9.52", + "version": "0.9.53", "description": "TeamChat backend server", "main": "src/index.js", "scripts": { diff --git a/backend/src/routes/schedule.js b/backend/src/routes/schedule.js index 6803206..3adaa4b 100644 --- a/backend/src/routes/schedule.js +++ b/backend/src/routes/schedule.js @@ -107,7 +107,13 @@ router.get('/', authMiddleware, (req, res) => { q += ' ORDER BY start_at ASC'; const events = db.prepare(q).all(...params) .filter(e => canViewEvent(db, e, req.user.id, itm)) - .map(e => enrichEvent(db, e)); + .map(e => { + enrichEvent(db, e); + // Include current user's response so the list can show the awaiting indicator + const mine = db.prepare('SELECT response FROM event_availability WHERE event_id = ? AND user_id = ?').get(e.id, req.user.id); + e.my_response = mine?.response || null; + return e; + }); res.json({ events }); }); diff --git a/build.sh b/build.sh index b5b80e5..a6ec91d 100644 --- a/build.sh +++ b/build.sh @@ -13,7 +13,7 @@ # ───────────────────────────────────────────────────────────── set -euo pipefail -VERSION="${1:-0.9.52}" +VERSION="${1:-0.9.53}" ACTION="${2:-}" REGISTRY="${REGISTRY:-}" IMAGE_NAME="jama" diff --git a/frontend/package.json b/frontend/package.json index 11d7375..76e48f0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "jama-frontend", - "version": "0.9.52", + "version": "0.9.53", "private": true, "scripts": { "dev": "vite", diff --git a/frontend/src/components/SchedulePage.jsx b/frontend/src/components/SchedulePage.jsx index 302a1ac..19d11b4 100644 --- a/frontend/src/components/SchedulePage.jsx +++ b/frontend/src/components/SchedulePage.jsx @@ -484,7 +484,11 @@ function ScheduleView({ events, selectedDate, onSelect }) { return s>=monthStart && s<=monthEnd; }); if(!filtered.length) return
No events in {MONTHS[m]} {y}
; - return <>{filtered.map(e=>{const s=new Date(e.start_at);const col=e.event_type?.colour||'#9ca3af';return(
onSelect(e)} style={{display:'flex',alignItems:'center',gap:20,padding:'14px 20px',borderBottom:'1px solid var(--border)',cursor:'pointer'}} onMouseEnter={el=>el.currentTarget.style.background='var(--background)'} onMouseLeave={el=>el.currentTarget.style.background=''}>
{s.getDate()}
{SHORT_MONTHS[s.getMonth()]}, {DAYS[s.getDay()]}
{e.all_day?'All day':fmtRange(e.start_at,e.end_at)}
{e.event_type?.name&&{e.event_type.name}:}{e.title}{e.track_availability&&!e.my_response&&}
{e.location&&
{e.location}
}
);})}; + return <>{filtered.map(e=>{const s=new Date(e.start_at);const col=e.event_type?.colour||'#9ca3af';return(
onSelect(e)} style={{display:'flex',alignItems:'center',gap:20,padding:'14px 20px',borderBottom:'1px solid var(--border)',cursor:'pointer'}} onMouseEnter={el=>el.currentTarget.style.background='var(--background)'} onMouseLeave={el=>el.currentTarget.style.background=''}>
{s.getDate()}
{SHORT_MONTHS[s.getMonth()]}, {DAYS[s.getDay()]}
{e.all_day?'All day':fmtRange(e.start_at,e.end_at)}
{e.event_type?.name&&{e.event_type.name}:}{e.title}{e.track_availability&&!e.my_response&&( + + + + )}
{e.location&&
{e.location}
}
);})}; } const HOUR_H = 52; // px per hour row