diff --git a/frontend/src/components/DiaryParticipantsPanel.vue b/frontend/src/components/DiaryParticipantsPanel.vue
index 23d83189..1bc3b224 100644
--- a/frontend/src/components/DiaryParticipantsPanel.vue
+++ b/frontend/src/components/DiaryParticipantsPanel.vue
@@ -12,6 +12,14 @@
{{ galleryLoading ? '⏳' : '🖼️' }}
{{ galleryLoading ? $t('diary.galleryCreating') : $t('diary.gallery') }}
+
@@ -196,6 +205,19 @@ export default {
box-shadow: none;
}
+.participant-group-photo-button {
+ padding: 0.45rem 0.75rem;
+ border: 1px solid var(--border-color);
+ border-radius: 10px;
+ background: var(--surface-muted);
+ color: var(--text-color);
+ font-weight: 600;
+ cursor: pointer;
+ display: inline-flex;
+ align-items: center;
+ gap: 0.4rem;
+}
+
.participant-search-input {
width: 100%;
padding: 0.65rem 0.8rem;
diff --git a/frontend/src/views/DiaryView.vue b/frontend/src/views/DiaryView.vue
index d7f05c96..9254433e 100644
--- a/frontend/src/views/DiaryView.vue
+++ b/frontend/src/views/DiaryView.vue
@@ -570,6 +570,7 @@
@open-tags="openTagInfos"
@open-quick-add="openQuickAddDialog"
@open-gallery="openGalleryDialog"
+ @open-group-photo-crop="showGroupPhotoCropDialog = true"
/>
@@ -673,6 +674,13 @@
@member-click="handleGalleryMemberClick"
/>
+
+
String(entry.id) === String(memberId));
+ if (member) {
+ member.hasImage = true;
+ }
+ await this.showInfo(this.$t('messages.success'), this.$t('members.groupPhotoCropSaved'), '', 'success');
+ },
hasItemDrawingData(item) {
if (!item) return false;