From 1c99fb30a128b4cd223d87f96c3a8236551e2861 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Sun, 16 Nov 2025 21:57:27 +0100 Subject: [PATCH] Enhance diary date activity service to include predefined activity images and improve image validation in DiaryView This commit updates the DiaryDateActivityService to include associated images for predefined activities, enhancing the data structure. Additionally, it refines the image validation logic in DiaryView to check for both drawing data and standard images, ensuring a more robust handling of image data. --- backend/services/diaryDateActivityService.js | 6 ++++++ frontend/src/views/DiaryView.vue | 21 +++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/backend/services/diaryDateActivityService.js b/backend/services/diaryDateActivityService.js index 2ce04bf..d9f9b73 100644 --- a/backend/services/diaryDateActivityService.js +++ b/backend/services/diaryDateActivityService.js @@ -166,6 +166,12 @@ class DiaryDateActivityService { { model: PredefinedActivity, as: 'groupPredefinedActivity', + include: [ + { + model: PredefinedActivityImage, + as: 'images' + } + ] }, ], } diff --git a/frontend/src/views/DiaryView.vue b/frontend/src/views/DiaryView.vue index 96068ce..0ade7c2 100644 --- a/frontend/src/views/DiaryView.vue +++ b/frontend/src/views/DiaryView.vue @@ -1004,16 +1004,23 @@ export default { if (typeof pa.drawingData === 'string' && pa.drawingData.trim() !== '') return true; if (typeof pa.drawingData === 'object' && Object.keys(pa.drawingData).length > 0) return true; } - // Bildliste mit drawingData - if (Array.isArray(pa.images) && pa.images.some(img => { - if (!img || !img.drawingData) return false; - if (typeof img.drawingData === 'string' && img.drawingData.trim() !== '') return true; - if (typeof img.drawingData === 'object' && Object.keys(img.drawingData).length > 0) return true; - return false; - })) return true; + // Bildliste - prüfe sowohl auf drawingData als auch auf normale Bilder + if (Array.isArray(pa.images) && pa.images.length > 0) { + // Prüfe auf Bilder mit drawingData + if (pa.images.some(img => { + if (!img || !img.drawingData) return false; + if (typeof img.drawingData === 'string' && img.drawingData.trim() !== '') return true; + if (typeof img.drawingData === 'object' && Object.keys(img.drawingData).length > 0) return true; + return false; + })) return true; + // Prüfe auf normale Bilder (auch ohne drawingData) + if (pa.images.some(img => img && (img.imagePath || img.id))) return true; + } // gerenderter Code / renderSpec if (pa.renderCode && pa.renderCode.trim() !== '') return true; if (pa.renderSpec && Object.keys(pa.renderSpec).length) return true; + // imageLink für normale Bilder + if (pa.imageLink && pa.imageLink.trim() !== '') return true; } catch (e) { } return false; },