feat: Enhance plan item display with visual representation and interaction options
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 45s
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 45s
This commit is contained in:
@@ -435,7 +435,12 @@
|
||||
<div class="plan-cell-stack">
|
||||
<div v-for="item in row.sharedItems" :key="`shared-${item.id}`" class="plan-cell-item">
|
||||
<div class="plan-activity-main">
|
||||
<span @click="startActivityEdit(item)" class="clickable activity-label">{{ getPlanItemDisplayLabel(item) }}</span>
|
||||
<span @click="startActivityEdit(item)" class="clickable activity-label">
|
||||
<span v-if="hasItemDrawingData(item)"
|
||||
@click.stop="openPlanItemVisual(item)"
|
||||
class="image-icon" :title="$t('diary.showImage')">🖼️</span>
|
||||
{{ getPlanItemDisplayLabel(item) }}
|
||||
</span>
|
||||
<span v-if="!isStructuralPlanItem(item) && getPlanItemStatus(item).label" class="plan-status-badge" :class="`plan-status-badge-${getPlanItemStatus(item).tone}`">
|
||||
{{ getPlanItemStatus(item).label }}
|
||||
</span>
|
||||
@@ -468,7 +473,12 @@
|
||||
<div v-if="(row.groupItems[group.id] || []).length" class="plan-cell-stack">
|
||||
<div v-for="item in (row.groupItems[group.id] || [])" :key="`group-item-${item.id}`" class="plan-cell-item">
|
||||
<div class="plan-activity-main">
|
||||
<span @click="startActivityEdit(item)" class="clickable activity-label">{{ getPlanItemDisplayLabel(item) }}</span>
|
||||
<span @click="startActivityEdit(item)" class="clickable activity-label">
|
||||
<span v-if="hasItemDrawingData(item)"
|
||||
@click.stop="openPlanItemVisual(item)"
|
||||
class="image-icon" :title="$t('diary.showImage')">🖼️</span>
|
||||
{{ getPlanItemDisplayLabel(item) }}
|
||||
</span>
|
||||
<span v-if="!isStructuralPlanItem(item) && getPlanItemStatus(item).label" class="plan-status-badge" :class="`plan-status-badge-${getPlanItemStatus(item).tone}`">
|
||||
{{ getPlanItemStatus(item).label }}
|
||||
</span>
|
||||
@@ -1473,9 +1483,31 @@ export default {
|
||||
}
|
||||
// Prüfe auch über predefinedActivity
|
||||
if (item.predefinedActivity && this.hasActivityVisual(item.predefinedActivity)) return true;
|
||||
if (item.groupPredefinedActivity && this.hasActivityVisual(item.groupPredefinedActivity)) return true;
|
||||
} catch (e) { }
|
||||
return false;
|
||||
},
|
||||
getPlanItemVisualSource(item) {
|
||||
if (!item) return null;
|
||||
if (item.predefinedActivity) return item.predefinedActivity;
|
||||
if (item.groupPredefinedActivity) return item.groupPredefinedActivity;
|
||||
if (!this.hasItemDrawingData(item)) return null;
|
||||
return {
|
||||
name: item.activity || '',
|
||||
code: item.activity || '',
|
||||
drawingData: item.drawingData || null,
|
||||
renderCode: item.renderCode || '',
|
||||
renderSpec: item.renderSpec || null,
|
||||
imageLink: item.imageLink || '',
|
||||
images: Array.isArray(item.images) ? item.images : []
|
||||
};
|
||||
},
|
||||
async openPlanItemVisual(item) {
|
||||
const source = this.getPlanItemVisualSource(item);
|
||||
if (source) {
|
||||
await this.openActivityVisual(source);
|
||||
}
|
||||
},
|
||||
|
||||
hasActivityVisual(pa) {
|
||||
if (!pa) return false;
|
||||
|
||||
Reference in New Issue
Block a user