This commit is contained in:
Lars Behrends
2025-10-18 22:03:30 +02:00
parent f4c1cfc164
commit ca2d3a6960
45 changed files with 4827 additions and 326 deletions

View File

@@ -0,0 +1,74 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title }} - Media Collector</title>
{% if app_env == 'production' %}
<link rel="stylesheet" href="{{ base_url() }}/build/assets/app-{{ manifest['resources/js/app.js'].file|replace({'.js': '.css'}) }}">
{% else %}
<link rel="stylesheet" href="{{ base_url() }}/app.css">
{% endif %}
<!-- Favicon -->
<link rel="icon" type="image/svg+xml" href="{{ base_url() }}/favicon.svg">
<meta name="csrf-token" content="{{ csrf_token() }}">
</head>
<body class="bg-gray-100">
<!-- Navigation -->
<nav class="bg-indigo-600 text-white shadow-lg">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between h-16">
<div class="flex">
<div class="flex-shrink-0 flex items-center">
<a href="{{ path_for('home') }}" class="text-xl font-bold">Media Collector</a>
</div>
<div class="hidden sm:ml-6 sm:flex sm:space-x-8">
<a href="{{ path_for('home') }}" class="border-indigo-500 text-white inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">Dashboard</a>
<a href="{{ path_for('games.index') }}" class="border-transparent text-indigo-100 hover:border-indigo-300 hover:text-white inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">Games</a>
<a href="{{ path_for('movies.index') }}" class="border-transparent text-indigo-100 hover:border-indigo-300 hover:text-white inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">Movies</a>
<a href="{{ path_for('tvshows.index') }}" class="border-transparent text-indigo-100 hover:border-indigo-300 hover:text-white inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">TV Shows</a>
<a href="{{ path_for('music.index') }}" class="border-transparent text-indigo-100 hover:border-indigo-300 hover:text-white inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">Music</a>
</div>
</div>
<div class="flex items-center space-x-4">
<!-- Admin Link (only for admins) -->
{% if is_admin() %}
<a href="/admin" class="text-indigo-100 hover:text-white text-sm font-medium">Admin</a>
{% endif %}
<!-- User Menu -->
<div class="relative" x-data="{ open: false }">
<button @click="open = !open" class="text-indigo-100 hover:text-white flex items-center space-x-1 text-sm font-medium">
<span>{{ current_user().username }}</span>
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
</svg>
</button>
<div x-show="open" @click.away="open = false" class="absolute right-0 mt-2 w-48 bg-white rounded-md shadow-lg py-1 z-50">
<div class="px-4 py-2 text-sm text-gray-700 border-b border-gray-200">
Signed in as<br>
<span class="font-medium">{{ current_user().username }}</span>
</div>
<a href="/logout" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">Sign out</a>
</div>
</div>
</div>
</div>
</div>
</nav>
<!-- Page Content -->
<main class="max-w-7xl mx-auto py-6 sm:px-6 lg:px-8">
{% block content %}{% endblock %}
</main>
<!-- Scripts -->
{% if app_env == 'production' %}
<script type="module" src="{{ base_url() }}/build/assets/{{ manifest['resources/js/app.js'].file }}"></script>
{% else %}
<script type="module" src="{{ base_url() }}/resources/js/app.js"></script>
{% endif %}
</body>
</html>