From 9323befdd99d64b85cca89af24ac1b7034d72eee Mon Sep 17 00:00:00 2001 From: Paul Nothaft Date: Sun, 12 Apr 2026 20:58:02 +0200 Subject: [PATCH] fix: display welcome message in gallery and fix guest thumbnail URLs (#306, #307) - Render welcome_message in gallery view for all non-fullpage layouts (grid, masonry, carousel, timeline, mosaic) as a centered banner - Add /api prefix to thumbnail/photo URLs in adminGuests.js and adminPhotos.js so they route correctly through Nginx proxy --- backend/src/routes/adminGuests.js | 8 ++++---- backend/src/routes/adminPhotos.js | 4 ++-- frontend/src/components/gallery/PhotoGridWithLayouts.tsx | 7 +++++++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/backend/src/routes/adminGuests.js b/backend/src/routes/adminGuests.js index 0cf6eacd..71643fa3 100644 --- a/backend/src/routes/adminGuests.js +++ b/backend/src/routes/adminGuests.js @@ -138,8 +138,8 @@ router.get( id: p.id, filename: p.filename, original_filename: p.original_filename, - url: `/admin/photos/${eventId}/photo/${p.id}`, - thumbnail_url: `/admin/photos/${eventId}/thumbnail/${p.id}`, + url: `/api/admin/photos/${eventId}/photo/${p.id}`, + thumbnail_url: `/api/admin/photos/${eventId}/thumbnail/${p.id}`, picker_count: parseInt(p.picker_count, 10), })), }); @@ -418,8 +418,8 @@ router.get( filename: row.filename, original_filename: row.original_filename, type: row.type, - url: `/admin/photos/${eventId}/photo/${row.photo_id}`, - thumbnail_url: `/admin/photos/${eventId}/thumbnail/${row.photo_id}`, + url: `/api/admin/photos/${eventId}/photo/${row.photo_id}`, + thumbnail_url: `/api/admin/photos/${eventId}/thumbnail/${row.photo_id}`, }); const selections = { diff --git a/backend/src/routes/adminPhotos.js b/backend/src/routes/adminPhotos.js index bcd98076..d422f067 100644 --- a/backend/src/routes/adminPhotos.js +++ b/backend/src/routes/adminPhotos.js @@ -922,9 +922,9 @@ router.get('/:eventId/photos', adminAuth, requirePermission('photos.view'), requ filename: photo.filename, original_filename: photo.original_filename || null, // Use the correct admin photos router base for serving images - url: `/admin/photos/${eventId}/photo/${photo.id}`, + url: `/api/admin/photos/${eventId}/photo/${photo.id}`, // Always expose a thumbnail URL; backend will generate on demand if missing - thumbnail_url: `/admin/photos/${eventId}/thumbnail/${photo.id}`, + thumbnail_url: `/api/admin/photos/${eventId}/thumbnail/${photo.id}`, type: photo.type, category_id: photo.category_id || photo.type, category_name: photo.pc_name || (photo.type === 'individual' ? 'Individual Photos' : 'Collages'), diff --git a/frontend/src/components/gallery/PhotoGridWithLayouts.tsx b/frontend/src/components/gallery/PhotoGridWithLayouts.tsx index 4af96f79..15ee1c96 100644 --- a/frontend/src/components/gallery/PhotoGridWithLayouts.tsx +++ b/frontend/src/components/gallery/PhotoGridWithLayouts.tsx @@ -295,6 +295,13 @@ export const PhotoGridWithLayouts: React.FC = ({ /> )} + {/* Welcome Message - shown for non-fullpage layouts when set */} + {!isFullPageLayout && welcomeMessage && ( +
+

{welcomeMessage}

+
+ )} + {/* Selection Mode Controls - Not shown for carousel, full-page layouts, or when controls are hidden */} {showSelectionControls && photos.length > 1 && galleryLayout !== 'carousel' && !isFullPageLayout && (