)}
+
+ {/* Logo at bottom position */}
+ {heroLogoVisible && heroLogoPosition === 'bottom' && (
+
+
+
+ )}
diff --git a/frontend/src/i18n/locales/de.json b/frontend/src/i18n/locales/de.json
index 4b5377eb..fdbb515f 100644
--- a/frontend/src/i18n/locales/de.json
+++ b/frontend/src/i18n/locales/de.json
@@ -833,6 +833,22 @@
"protectionLevelStandard": "Standard - Tastenkombinationen blockiert",
"protectionLevelEnhanced": "Erweitert - Bildschirmfoto-Erkennung",
"protectionLevelMaximum": "Maximum - DevTools-Erkennung & Canvas-Rendering",
+ "heroLogoSettings": "Hero-Logo-Einstellungen",
+ "heroLogoVisible": "Logo im Hero-Bereich anzeigen",
+ "heroLogoSize": "Logo-Größe",
+ "heroLogoSizeSmall": "Klein",
+ "heroLogoSizeMedium": "Mittel",
+ "heroLogoSizeLarge": "Groß",
+ "heroLogoSizeXLarge": "Extra Groß",
+ "heroLogoPosition": "Logo-Position",
+ "heroLogoPositionTop": "Oben (über dem Titel)",
+ "heroLogoPositionCenter": "Mitte (zwischen Titel und Datum)",
+ "heroLogoPositionBottom": "Unten (unter dem Datum)",
+ "heroLogoInfo": "Diese Einstellungen gelten für das Hero-Layout der Galerie. Sie können das Logo ausblenden oder Größe und Position anpassen.",
+ "heroLogoVisibleLabel": "Logo sichtbar",
+ "heroLogoSizeLabel": "Größe",
+ "heroLogoPositionLabel": "Position",
+ "heroLogoHidden": "Logo ausgeblendet",
"heroPhoto": "Hero-Foto",
"heroPhotoHelp": "Wählen Sie ein hervorgehobenes Foto für das Hero-Galerie-Layout",
"selectHeroPhoto": "Hero-Foto auswählen",
diff --git a/frontend/src/i18n/locales/en.json b/frontend/src/i18n/locales/en.json
index 43fbe80c..2a436507 100644
--- a/frontend/src/i18n/locales/en.json
+++ b/frontend/src/i18n/locales/en.json
@@ -459,6 +459,22 @@
"protectionLevelStandard": "Standard - Keyboard shortcuts blocked",
"protectionLevelEnhanced": "Enhanced - Print screen detection",
"protectionLevelMaximum": "Maximum - DevTools detection & canvas rendering",
+ "heroLogoSettings": "Hero Logo Settings",
+ "heroLogoVisible": "Display logo in hero section",
+ "heroLogoSize": "Logo Size",
+ "heroLogoSizeSmall": "Small",
+ "heroLogoSizeMedium": "Medium",
+ "heroLogoSizeLarge": "Large",
+ "heroLogoSizeXLarge": "Extra Large",
+ "heroLogoPosition": "Logo Position",
+ "heroLogoPositionTop": "Top (above title)",
+ "heroLogoPositionCenter": "Center (between title and dates)",
+ "heroLogoPositionBottom": "Bottom (below dates)",
+ "heroLogoInfo": "These settings apply when the gallery uses the Hero layout. You can hide the logo or customize its size and position.",
+ "heroLogoVisibleLabel": "Logo visible",
+ "heroLogoSizeLabel": "Size",
+ "heroLogoPositionLabel": "Position",
+ "heroLogoHidden": "Logo hidden",
"heroPhoto": "Hero Photo",
"heroPhotoHelp": "Select a featured photo for the hero gallery layout",
"selectHeroPhoto": "Select Hero Photo",
diff --git a/frontend/src/pages/admin/EventDetailsPage.tsx b/frontend/src/pages/admin/EventDetailsPage.tsx
index 753fc5e6..958519af 100644
--- a/frontend/src/pages/admin/EventDetailsPage.tsx
+++ b/frontend/src/pages/admin/EventDetailsPage.tsx
@@ -25,7 +25,8 @@ import {
Shield,
Monitor,
Droplets,
- MousePointer
+ MousePointer,
+ Layout
} from 'lucide-react';
import { parseISO, differenceInDays, isValid } from 'date-fns';
@@ -160,6 +161,10 @@ export const EventDetailsPage: React.FC = () => {
watermark_downloads: boolean;
enable_devtools_protection: boolean;
use_canvas_rendering: boolean;
+ // Hero logo settings
+ hero_logo_visible: boolean;
+ hero_logo_size: 'small' | 'medium' | 'large' | 'xlarge';
+ hero_logo_position: 'top' | 'center' | 'bottom';
};
const [isEditing, setIsEditing] = useState(false);
@@ -184,6 +189,10 @@ export const EventDetailsPage: React.FC = () => {
watermark_downloads: false,
enable_devtools_protection: true,
use_canvas_rendering: false,
+ // Hero logo settings
+ hero_logo_visible: true,
+ hero_logo_size: 'medium',
+ hero_logo_position: 'top',
});
const [feedbackSettings, setFeedbackSettings] = useState({
feedback_enabled: false,
@@ -406,6 +415,10 @@ export const EventDetailsPage: React.FC = () => {
watermark_downloads: event.watermark_downloads ?? false,
enable_devtools_protection: event.enable_devtools_protection ?? true,
use_canvas_rendering: event.use_canvas_rendering ?? false,
+ // Load hero logo settings from event
+ hero_logo_visible: event.hero_logo_visible ?? true,
+ hero_logo_size: event.hero_logo_size || 'medium',
+ hero_logo_position: event.hero_logo_position || 'top',
});
setShowNewPassword(false);
@@ -496,6 +509,10 @@ export const EventDetailsPage: React.FC = () => {
watermark_downloads: editForm.watermark_downloads,
enable_devtools_protection: editForm.enable_devtools_protection,
use_canvas_rendering: editForm.use_canvas_rendering,
+ // Hero logo settings
+ hero_logo_visible: editForm.hero_logo_visible,
+ hero_logo_size: editForm.hero_logo_size,
+ hero_logo_position: editForm.hero_logo_position,
};
// Only include fields that have defined values
@@ -1062,6 +1079,66 @@ export const EventDetailsPage: React.FC = () => {
+
+ {/* Hero Logo Settings */}
+
+
+
+ {t('events.heroLogoSettings', 'Hero Logo Settings')}
+
+
+
+
+
+ {editForm.hero_logo_visible && (
+ <>
+
+
+
+
+
+
+
+
+
+ >
+ )}
+
+
+ {t('events.heroLogoInfo', 'These settings apply when the gallery uses the Hero layout. You can hide the logo or customize its size and position.')}
+