Deploy to Production (witstore.wende.it) / deploy (push) Successful in 7s
- E-Mail-Templates: DB-gespeicherte HTML-Templates mit {{placeholder}}-System,
Admin-UI zum Bearbeiten von Betreff und Body, alle 4 Mailables aktualisiert
- Seiten-Layouts: 4 Layouts für CMS-Seiten (Standard, Sidebar, Volle Breite, Landing),
Layout-Auswahl im Admin-Formular
- Shop-Themes: 5 Farbthemen via CSS-Variablen, Picker in Einstellungen
- Deployment: EmailTemplateSeeder wird automatisch beim Deploy ausgeführt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
63 lines
4.3 KiB
PHP
63 lines
4.3 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>@yield('title', 'Admin') — {{ \App\Models\Setting::get('shop_name', 'Shop') }}</title>
|
|
@vite(['resources/css/app.css', 'resources/js/app.js'])
|
|
@stack('head')
|
|
</head>
|
|
<body class="bg-gray-100 text-gray-800 min-h-screen flex">
|
|
|
|
{{-- Sidebar --}}
|
|
<aside class="w-64 bg-gray-900 text-white flex flex-col shrink-0">
|
|
<div class="p-4 text-lg font-bold border-b border-gray-700">
|
|
🛒 Admin
|
|
</div>
|
|
<nav class="flex-1 p-4 space-y-1 text-sm">
|
|
<a href="{{ route('admin.dashboard') }}" class="block px-3 py-2 rounded hover:bg-gray-700 {{ request()->routeIs('admin.dashboard') ? 'bg-gray-700' : '' }}">Dashboard</a>
|
|
<div class="pt-2 pb-1 text-xs text-gray-400 uppercase tracking-wide">Sortiment</div>
|
|
<a href="{{ route('admin.categories.index') }}" class="block px-3 py-2 rounded hover:bg-gray-700 {{ request()->routeIs('admin.categories.*') ? 'bg-gray-700' : '' }}">Kategorien</a>
|
|
<a href="{{ route('admin.products.index') }}" class="block px-3 py-2 rounded hover:bg-gray-700 {{ request()->routeIs('admin.products.*') ? 'bg-gray-700' : '' }}">Artikel</a>
|
|
<a href="{{ route('admin.attributes.index') }}" class="block px-3 py-2 rounded hover:bg-gray-700 {{ request()->routeIs('admin.attributes.*') ? 'bg-gray-700' : '' }}">Attribute</a>
|
|
<div class="pt-2 pb-1 text-xs text-gray-400 uppercase tracking-wide">Kunden & Bestellungen</div>
|
|
<a href="{{ route('admin.customers.index') }}" class="block px-3 py-2 rounded hover:bg-gray-700 {{ request()->routeIs('admin.customers.*') ? 'bg-gray-700' : '' }}">Kunden</a>
|
|
<a href="{{ route('admin.orders.index') }}" class="block px-3 py-2 rounded hover:bg-gray-700 {{ request()->routeIs('admin.orders.*') ? 'bg-gray-700' : '' }}">Bestellungen</a>
|
|
<div class="pt-2 pb-1 text-xs text-gray-400 uppercase tracking-wide">CMS</div>
|
|
<a href="{{ route('admin.pages.index') }}" class="block px-3 py-2 rounded hover:bg-gray-700 {{ request()->routeIs('admin.pages.*') ? 'bg-gray-700' : '' }}">Seiten</a>
|
|
<a href="{{ route('admin.banners.index') }}" class="block px-3 py-2 rounded hover:bg-gray-700 {{ request()->routeIs('admin.banners.*') ? 'bg-gray-700' : '' }}">Banner</a>
|
|
<a href="{{ route('admin.faqs.index') }}" class="block px-3 py-2 rounded hover:bg-gray-700 {{ request()->routeIs('admin.faqs.*') ? 'bg-gray-700' : '' }}">FAQ</a>
|
|
<div class="pt-2 pb-1 text-xs text-gray-400 uppercase tracking-wide">System</div>
|
|
<a href="{{ route('admin.admins.index') }}" class="block px-3 py-2 rounded hover:bg-gray-700 {{ request()->routeIs('admin.admins.*') ? 'bg-gray-700' : '' }}">Admin-Benutzer</a>
|
|
<a href="{{ route('admin.email-templates.index') }}" class="block px-3 py-2 rounded hover:bg-gray-700 {{ request()->routeIs('admin.email-templates.*') ? 'bg-gray-700' : '' }}">E-Mail-Templates</a>
|
|
<a href="{{ route('admin.settings.index') }}" class="block px-3 py-2 rounded hover:bg-gray-700 {{ request()->routeIs('admin.settings.*') ? 'bg-gray-700' : '' }}">Einstellungen</a>
|
|
</nav>
|
|
<div class="p-4 border-t border-gray-700 text-xs text-gray-400">
|
|
{{ auth()->user()->name }}<br>
|
|
<form method="POST" action="{{ route('logout') }}">@csrf
|
|
<button class="text-gray-400 hover:text-white mt-1">Abmelden</button>
|
|
</form>
|
|
</div>
|
|
</aside>
|
|
|
|
{{-- Main --}}
|
|
<div class="flex-1 flex flex-col overflow-hidden">
|
|
<header class="bg-white shadow px-6 py-3 flex items-center justify-between">
|
|
<h1 class="text-xl font-semibold">@yield('title', 'Admin')</h1>
|
|
<a href="{{ url('/') }}" class="text-sm text-blue-600 hover:underline" target="_blank">Shop ansehen</a>
|
|
</header>
|
|
|
|
<main class="flex-1 overflow-y-auto p-6">
|
|
@if(session('success'))
|
|
<div class="mb-4 bg-green-100 text-green-800 px-4 py-3 rounded">{{ session('success') }}</div>
|
|
@endif
|
|
@if(session('error'))
|
|
<div class="mb-4 bg-red-100 text-red-800 px-4 py-3 rounded">{{ session('error') }}</div>
|
|
@endif
|
|
|
|
@yield('content')
|
|
</main>
|
|
</div>
|
|
</body>
|
|
</html>
|