Fix admin interface issues and 404 errors

- Create adminEvents.js router to handle /api/admin/events endpoints
- Mount events router in admin.js to fix 404 errors
- Fix admin layout CSS - changed from static to flex layout
- Update AdminSidebar positioning from static to relative
- Add missing PUT endpoints for general and security settings
- Fix frontend environment variables in docker-compose.local.yml
- Add build args to Dockerfile.dev for environment variables
- Update CORS to accept requests from all dev servers
- Remove unused imports from SettingsPage

This fixes:
- Events page 404 error
- Admin layout misalignment (sidebar and content on different rows)
- Settings page not loading
- CORS issues between frontend and backend

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-07-07 08:40:26 +02:00
parent 024c8eac2d
commit f38a8ef598
10 changed files with 417 additions and 15 deletions
@@ -25,7 +25,7 @@ export const AdminLayout: React.FC = () => {
}
return (
<div className="min-h-screen bg-neutral-50">
<div className="min-h-screen bg-neutral-50 flex">
{/* Mobile sidebar backdrop */}
{sidebarOpen && (
<div
@@ -38,12 +38,12 @@ export const AdminLayout: React.FC = () => {
<AdminSidebar isOpen={sidebarOpen} onClose={() => setSidebarOpen(false)} />
{/* Main content */}
<div className="lg:pl-64">
<div className="flex-1 flex flex-col min-w-0">
{/* Header */}
<AdminHeader onMenuClick={() => setSidebarOpen(true)} />
{/* Page content */}
<main id="main-content" className="px-4 sm:px-6 lg:px-8 py-8">
<main id="main-content" className="flex-1 px-4 sm:px-6 lg:px-8 py-8">
<Outlet />
</main>
</div>
@@ -40,7 +40,7 @@ export const AdminSidebar: React.FC<AdminSidebarProps> = ({ isOpen, onClose }) =
return (
<div
className={`fixed inset-y-0 left-0 z-50 w-64 bg-white border-r border-neutral-200 transform transition-transform duration-200 ease-in-out lg:translate-x-0 lg:static ${
className={`fixed inset-y-0 left-0 z-50 w-64 bg-white border-r border-neutral-200 transform transition-transform duration-200 ease-in-out lg:relative lg:translate-x-0 ${
isOpen ? 'translate-x-0' : '-translate-x-full'
}`}
>
@@ -87,7 +87,6 @@ export const AdminSidebar: React.FC<AdminSidebarProps> = ({ isOpen, onClose }) =
{/* Storage Info */}
<StorageInfo />
</div>
</div>
</div>
);