+ {#each selectedPost.comments as comment, i (i)}
+
+ {comment.author}
+ {comment.text}
+
+ {formatShortDate(comment.timestamp)}
+
-
- {/each}
-
- {/if}
-
+ {/each}
+
+ {/if}
+
+ {/if}
diff --git a/frontend/src/lib/components/UploadSheet.svelte b/frontend/src/lib/components/UploadSheet.svelte
index 1624d39..17acc9e 100644
--- a/frontend/src/lib/components/UploadSheet.svelte
+++ b/frontend/src/lib/components/UploadSheet.svelte
@@ -6,6 +6,7 @@
import CameraCapture from '$lib/components/CameraCapture.svelte';
import type { PendingFile } from '$lib/pending-upload-store';
import { eventState, uploadsClosed } from '$lib/event-state-store';
+ import { commentsEnabled } from '$lib/event-config-store';
// Uploads closed (event locked or gallery released) — show a lock notice instead of
// the capture options, so a guest can't stage a photo that would just be rejected.
@@ -163,8 +164,9 @@
Uploads geschlossen
- Der Host hat die Uploads für dieses Event beendet. Du kannst weiterhin Fotos ansehen,
- liken und kommentieren.
+ Der Host hat die Uploads für dieses Event beendet. Du kannst weiterhin Fotos ansehen{$commentsEnabled
+ ? ', liken und kommentieren'
+ : ' und liken'}.
diff --git a/frontend/src/lib/components/VirtualFeed.svelte b/frontend/src/lib/components/VirtualFeed.svelte
index 3616156..0c64199 100644
--- a/frontend/src/lib/components/VirtualFeed.svelte
+++ b/frontend/src/lib/components/VirtualFeed.svelte
@@ -22,6 +22,7 @@
import { browser } from '$app/environment';
import type { FeedUpload } from '$lib/types';
import { dataMode } from '$lib/data-mode-store';
+ import { commentsEnabled } from '$lib/event-config-store';
import { longpress } from '$lib/actions/longpress';
import FeedListCard from './FeedListCard.svelte';
@@ -277,24 +278,31 @@
{upload.like_count}
-
+ {#if $commentsEnabled}
+
+ {/if}
diff --git a/frontend/src/routes/admin/+page.svelte b/frontend/src/routes/admin/+page.svelte
index 3808a0a..50b70be 100644
--- a/frontend/src/routes/admin/+page.svelte
+++ b/frontend/src/routes/admin/+page.svelte
@@ -8,7 +8,12 @@
import Modal from '$lib/components/Modal.svelte';
import IconButton from '$lib/components/IconButton.svelte';
import { PRESETS, DEFAULT_SEED, buildPaletteCss, type ThemeConfig } from '$lib/theme/palette';
- import { previewTheme, PALETTE_CACHE_KEY, loadEventConfig } from '$lib/event-config-store';
+ import {
+ previewTheme,
+ PALETTE_CACHE_KEY,
+ loadEventConfig,
+ commentsEnabled
+ } from '$lib/event-config-store';
import { onDestroy } from 'svelte';
interface StatsDto {
@@ -644,12 +649,14 @@
Uploads
-
-
- {stats.comment_count}
-
-
Kommentare
-
+ {#if $commentsEnabled}
+
+
+ {stats.comment_count}
+
+
Kommentare
+
+ {/if}
{diskPct(stats)} %
@@ -1053,7 +1060,7 @@
onclick={() =>
(confirmAction = {
title: 'Sperre aufheben?',
- message: `${user.display_name} kann danach wieder hochladen, liken und kommentieren.`,
+ message: `${user.display_name} kann danach wieder hochladen${$commentsEnabled ? ', liken und kommentieren' : ' und liken'}.`,
confirmLabel: 'Entsperren',
tone: 'default',
run: () => unban(user)
diff --git a/frontend/src/routes/export/+page.svelte b/frontend/src/routes/export/+page.svelte
index 4d3b628..fa40682 100644
--- a/frontend/src/routes/export/+page.svelte
+++ b/frontend/src/routes/export/+page.svelte
@@ -7,6 +7,7 @@
import { toastError } from '$lib/toast-store';
import { focusTrap } from '$lib/actions/focus-trap';
import IconButton from '$lib/components/IconButton.svelte';
+ import { commentsEnabled } from '$lib/event-config-store';
interface JobStatus {
status: 'locked' | 'pending' | 'running' | 'done' | 'failed';
@@ -266,7 +267,8 @@
HTML-Viewer
- Schöne Offline-Galerie mit Filterung, Kommentaren und Likes — kein Internet nötig.
+ Schöne Offline-Galerie mit Filterung{$commentsEnabled ? ', Kommentaren' : ''} und Likes
+ — kein Internet nötig.
- {banTarget.display_name} wird gesperrt: alle Uploads verschwinden aus Galerie,
- Diashow und Export, und Hochladen, Liken und Kommentieren werden blockiert. Der Lesezugriff (Feed
- ansehen, Keepsake herunterladen) bleibt bestehen. Rückgängig machbar über „Entsperren“.
+ {banTarget.display_name} wird gesperrt: alle Uploads verschwinden aus
+ Galerie, Diashow und Export, und Hochladen, Liken{$commentsEnabled ? ' und Kommentieren' : ''} werden
+ blockiert. Der Lesezugriff (Feed ansehen, Keepsake herunterladen) bleibt bestehen. Rückgängig machbar
+ über „Entsperren“.