Fügt eine neue Methode hasActivityVisual in DiaryView.vue hinzu, um die Sichtbarkeit von Aktivitätsvisualisierungen zu überprüfen. Aktualisiert die Bedingungen für die Anzeige von Icons, die Bilder oder Zeichnungen darstellen, um die Benutzeroberfläche zu verbessern und die Logik zu optimieren.

This commit is contained in:
Torsten Schulz (local)
2025-10-08 11:00:20 +02:00
parent dc0eff4e4c
commit d0ccaa9e54

View File

@@ -124,10 +124,10 @@
</div>
</div>
</span>
<span v-else @click="startActivityEdit(item)" class="clickable activity-label"
<span v-else @click="startActivityEdit(item)" class="clickable activity-label"
:title="item.predefinedActivity && item.predefinedActivity.name ? item.predefinedActivity.name : ''">
<!-- Icon öffnet Rendering (falls vorhanden) oder Bild im Modal -->
<span v-if="item.predefinedActivity"
<span v-if="hasActivityVisual(item.predefinedActivity)"
@click.stop="openActivityVisual(item.predefinedActivity)"
class="image-icon"
title="Bild/Zeichnung anzeigen">🖼</span>
@@ -163,7 +163,7 @@
<td>
<span class="activity-label" :title="(groupItem.groupPredefinedActivity && groupItem.groupPredefinedActivity.name) ? groupItem.groupPredefinedActivity.name : ''">
<!-- Icon öffnet Rendering (falls vorhanden) oder Bild im Modal -->
<span v-if="groupItem.groupPredefinedActivity"
<span v-if="hasActivityVisual(groupItem.groupPredefinedActivity)"
@click.stop="openActivityVisual(groupItem.groupPredefinedActivity)"
class="image-icon"
title="Bild/Zeichnung anzeigen">🖼</span>
@@ -550,6 +550,19 @@ export default {
},
},
methods: {
hasActivityVisual(pa) {
if (!pa) return false;
try {
// direktes drawingData am PA
if (pa.drawingData && pa.drawingData !== '') return true;
// Bildliste mit drawingData
if (Array.isArray(pa.images) && pa.images.some(img => img && img.drawingData && img.drawingData !== '')) return true;
// gerenderter Code / renderSpec
if (pa.renderCode && pa.renderCode.trim() !== '') return true;
if (pa.renderSpec && Object.keys(pa.renderSpec).length) return true;
} catch (e) {}
return false;
},
drawingDataFor(pa) {
// Zeichnungsdaten können bereits als Objekt vorliegen oder als JSON-String
try {