+
Neues Datum anlegen
@@ -493,6 +500,25 @@
:initial-drawing-data="null"
@ok="handleDrawingDialogOkForDiary"
/>
+
+
+
+
+
Galerie wird erstellt…
+
+
![Mitglieder-Galerie]()
+
+
+ {{ galleryError || 'Keine Galerie verfügbar.' }}
+
+
+
@@ -637,6 +663,10 @@ export default {
accidents: [],
editingActivityId: null, // ID der Aktivität, die gerade bearbeitet wird
// Suche für Inline-Edit
+ showGalleryDialog: false,
+ galleryLoading: false,
+ galleryImageUrl: null,
+ galleryError: '',
editShowDropdown: false,
editSearchResults: [],
editSearchForId: null,
@@ -749,6 +779,35 @@ export default {
}
this.confirmDialog.isOpen = false;
},
+ revokeGalleryImage() {
+ if (this.galleryImageUrl) {
+ URL.revokeObjectURL(this.galleryImageUrl);
+ this.galleryImageUrl = null;
+ }
+ },
+ async openGalleryDialog() {
+ if (!this.currentClub || this.galleryLoading) {
+ return;
+ }
+ this.galleryLoading = true;
+ this.galleryError = '';
+ try {
+ const response = await apiClient.get(`/clubmembers/gallery/${this.currentClub}`, { responseType: 'blob' });
+ this.revokeGalleryImage();
+ this.galleryImageUrl = URL.createObjectURL(response.data);
+ this.showGalleryDialog = true;
+ } catch (error) {
+ console.error('Fehler beim Erstellen der Mitglieder-Galerie:', error);
+ this.galleryError = error?.response?.data?.error || 'Galerie konnte nicht erstellt werden.';
+ this.showInfo('Fehler', 'Galerie konnte nicht erstellt werden.', this.galleryError, 'error');
+ } finally {
+ this.galleryLoading = false;
+ }
+ },
+ closeGalleryDialog() {
+ this.showGalleryDialog = false;
+ this.revokeGalleryImage();
+ },
hasActivityVisual(pa) {
if (!pa) return false;
@@ -2355,6 +2414,7 @@ export default {
if (this.timeChecker) {
clearInterval(this.timeChecker);
}
+ this.revokeGalleryImage();
}
};
@@ -2400,6 +2460,44 @@ h3 {
height: 100%;
}
+.diary-header-row {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+ flex-wrap: wrap;
+ margin-bottom: 1rem;
+}
+
+.gallery-trigger {
+ align-self: flex-end;
+}
+
+.gallery-dialog-content {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ min-height: 60vh;
+ max-height: 70vh;
+}
+
+.gallery-image-wrapper {
+ max-width: 100%;
+ max-height: 100%;
+}
+
+.gallery-dialog-image {
+ max-width: 100%;
+ max-height: 100%;
+ border-radius: 8px;
+ box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
+}
+
+.gallery-loading,
+.gallery-error {
+ font-size: 1rem;
+ color: var(--text-color, #333);
+}
+
.column:first-child {
flex: 1;
overflow: visible;