Protect recordings per user, seed a demo login on container start, and bind-mount the app with Vite HMR for local Compose development.
90 lines
3.5 KiB
PHP
90 lines
3.5 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}" class="dark">
|
|
<head>
|
|
@include('partials.head', ['title' => trim($__env->yieldContent('title')) ?: null])
|
|
<style>[x-cloak]{display:none!important}</style>
|
|
</head>
|
|
<body class="min-h-screen bg-stone-100 text-stone-900 antialiased dark:bg-zinc-900 dark:text-zinc-100">
|
|
<x-disk-space-bar />
|
|
|
|
<flux:header class="border-b border-stone-200 bg-white dark:border-zinc-700 dark:bg-zinc-800">
|
|
<div class="mx-auto flex w-full max-w-5xl items-center gap-4 px-4 sm:px-6">
|
|
<flux:sidebar.toggle class="lg:hidden" icon="bars-2" inset="left" />
|
|
|
|
<a href="{{ route('recordings.index') }}" class="text-lg font-semibold tracking-tight text-teal-800 dark:text-teal-300">
|
|
AndyTranscribe
|
|
</a>
|
|
|
|
<flux:navbar class="-mb-px max-lg:hidden">
|
|
<flux:navbar.item
|
|
:href="route('recordings.index')"
|
|
:current="request()->routeIs('recordings.index', 'recordings.show')"
|
|
>
|
|
{{ __('Recordings') }}
|
|
</flux:navbar.item>
|
|
<flux:navbar.item
|
|
:href="route('recordings.create')"
|
|
:current="request()->routeIs('recordings.create')"
|
|
>
|
|
{{ __('Upload') }}
|
|
</flux:navbar.item>
|
|
</flux:navbar>
|
|
|
|
<flux:spacer />
|
|
|
|
<x-appearance-toggle />
|
|
|
|
@auth
|
|
<x-desktop-user-menu />
|
|
@endauth
|
|
</div>
|
|
</flux:header>
|
|
|
|
<flux:sidebar collapsible="mobile" sticky class="border-e border-stone-200 bg-white lg:hidden dark:border-zinc-700 dark:bg-zinc-800">
|
|
<flux:sidebar.header>
|
|
<a href="{{ route('recordings.index') }}" class="text-base font-semibold text-teal-800 dark:text-teal-300">
|
|
AndyTranscribe
|
|
</a>
|
|
<flux:sidebar.collapse />
|
|
</flux:sidebar.header>
|
|
|
|
<flux:sidebar.nav>
|
|
<flux:sidebar.item :href="route('recordings.index')" :current="request()->routeIs('recordings.*')">
|
|
{{ __('Recordings') }}
|
|
</flux:sidebar.item>
|
|
<flux:sidebar.item :href="route('recordings.create')" :current="request()->routeIs('recordings.create')">
|
|
{{ __('Upload') }}
|
|
</flux:sidebar.item>
|
|
</flux:sidebar.nav>
|
|
</flux:sidebar>
|
|
|
|
<main class="mx-auto max-w-5xl px-4 py-8 sm:px-6">
|
|
@if (session('success'))
|
|
<div class="mb-6 rounded border border-teal-200 bg-teal-50 px-4 py-3 text-sm text-teal-900 dark:border-teal-800 dark:bg-teal-950 dark:text-teal-100">
|
|
{{ session('success') }}
|
|
</div>
|
|
@endif
|
|
|
|
@if (session('error'))
|
|
<div class="mb-6 rounded border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-900 dark:border-red-900 dark:bg-red-950 dark:text-red-100">
|
|
{{ session('error') }}
|
|
</div>
|
|
@endif
|
|
|
|
@if ($errors->any())
|
|
<div class="mb-6 rounded border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-900 dark:border-red-900 dark:bg-red-950 dark:text-red-100">
|
|
<ul class="list-disc space-y-1 pl-5">
|
|
@foreach ($errors->all() as $error)
|
|
<li>{{ $error }}</li>
|
|
@endforeach
|
|
</ul>
|
|
</div>
|
|
@endif
|
|
|
|
@yield('content')
|
|
</main>
|
|
|
|
@fluxScripts
|
|
</body>
|
|
</html>
|