From c3a29fa47c646e0f5b1581eeee5e41db8b15392c Mon Sep 17 00:00:00 2001 From: Jennie Robinson Faber Date: Wed, 27 Aug 2025 17:14:02 +0100 Subject: [PATCH] Refactor event creation and display: Remove debug logs from event creation page, enhance layout for better responsiveness, and implement image URL fallback logic in event detail and index pages. Improve error handling for image loading. --- app/pages/admin/events/create.vue | 34 +++---------------------------- app/pages/admin/events/index.vue | 17 ++-------------- app/pages/events/[id].vue | 30 +++++++++++++++++++++++---- app/pages/events/index.vue | 26 ++++++++++++++++++++++- 4 files changed, 56 insertions(+), 51 deletions(-) diff --git a/app/pages/admin/events/create.vue b/app/pages/admin/events/create.vue index 4c4faf7..299517a 100644 --- a/app/pages/admin/events/create.vue +++ b/app/pages/admin/events/create.vue @@ -10,19 +10,13 @@

{{ editingEvent ? 'Edit Event' : 'Create New Event' }}

-
- DEBUG: Create page loaded successfully! -
- Route query: {{ JSON.stringify($route.query) }} -
-

Fill out the form below to create or update an event

-
+
@@ -48,7 +42,7 @@
-
+

Basic Information

@@ -348,20 +342,13 @@ \ No newline at end of file diff --git a/app/pages/events/[id].vue b/app/pages/events/[id].vue index 6b90e6a..ee3d3b7 100644 --- a/app/pages/events/[id].vue +++ b/app/pages/events/[id].vue @@ -21,13 +21,12 @@
-
+
@@ -366,6 +365,29 @@ const getOptimizedImageUrl = (publicId, transformations) => { return `https://res.cloudinary.com/${config.public.cloudinaryCloudName}/image/upload/${transformations}/f_auto,q_auto/${publicId}` } +// Get image URL with fallback logic +const getImageUrl = (featureImage) => { + if (!featureImage) return '' + + // If we have a direct URL, use it as primary (since seed data uses external URLs) + if (featureImage.url) { + return featureImage.url + } + + // Fallback to Cloudinary if we have a publicId + if (featureImage.publicId) { + return getOptimizedImageUrl(featureImage.publicId, 'w_1200,h_400,c_fill') + } + + return '' +} + +// Handle image loading errors +const handleImageError = (event) => { + console.warn('Image failed to load:', event.target.src) + // Optionally hide the image container or show a placeholder +} + // Handle registration submission const handleRegistration = async () => { isRegistering.value = true diff --git a/app/pages/events/index.vue b/app/pages/events/index.vue index dcbd7b1..5c23b52 100644 --- a/app/pages/events/index.vue +++ b/app/pages/events/index.vue @@ -85,9 +85,10 @@
@@ -325,6 +326,29 @@ const getOptimizedImageUrl = (publicId, transformations) => { return `https://res.cloudinary.com/${config.public.cloudinaryCloudName}/image/upload/${transformations}/f_auto,q_auto/${publicId}` } +// Get image URL with fallback logic +const getImageUrl = (featureImage) => { + if (!featureImage) return '' + + // If we have a direct URL, use it as primary (since seed data uses external URLs) + if (featureImage.url) { + return featureImage.url + } + + // Fallback to Cloudinary if we have a publicId + if (featureImage.publicId) { + return getOptimizedImageUrl(featureImage.publicId, 'w_400,h_200,c_fill') + } + + return '' +} + +// Handle image loading errors +const handleImageError = (event) => { + console.warn('Image failed to load:', event.target.src) + // Optionally hide the image container or show a placeholder +} + // Handle calendar event click const onEventClick = (event) => { if (event.id) {