Implement complete frontend with admin panel and theme system

- Add admin authentication and dashboard
- Create event management pages (list, create, edit, archive)
- Implement gallery enhancements (search, sorting, bulk download)
- Add email configuration and archive management pages
- Integrate Umami analytics with tracking throughout the app
- Add comprehensive error boundaries and loading states
- Implement accessibility features (WCAG 2.1 AA compliance)
- Create theme system with preset themes and customization
- Add branding settings and company information management
- Fix backend database initialization and health check
- Configure proper API URLs and environment variables

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
This commit is contained in:
2025-07-06 22:04:45 +02:00
co-authored by Claude
parent 6c82958c79
commit 28632e8970
53 changed files with 13843 additions and 181 deletions
+13
View File
@@ -7,6 +7,7 @@ import { Card, CardContent, Input, Button, Loading } from '../components/common'
import { useGalleryAuth } from '../contexts';
import { useGalleryInfo } from '../hooks/useGallery';
import { GalleryView } from '../components/gallery/GalleryView';
import { analyticsService } from '../services/analytics.service';
export const GalleryPage: React.FC = () => {
const { slug } = useParams<{ slug: string }>();
@@ -34,8 +35,20 @@ export const GalleryPage: React.FC = () => {
setIsLoggingIn(true);
setLoginError(null);
await login(slug!, password);
// Track successful password entry
analyticsService.trackGalleryEvent('password_entry', {
gallery: slug,
success: true
});
} catch (error: any) {
setLoginError(error.response?.data?.error || 'Invalid password');
// Track failed password entry
analyticsService.trackGalleryEvent('password_entry', {
gallery: slug,
success: false
});
} finally {
setIsLoggingIn(false);
}