- Fix: Notifiable-Trait zum User-Model hinzugefuegt (behebt notify()-500er) - Installer: SMTP-Verbindungstest mit EsmtpTransport + Ueberspringen-Link - Admin: Neuer E-Mail-Tab mit SMTP-Konfiguration + Verbindungstest - Admin: Lazy Quill-Initialisierung (nur sichtbare Locale wird geladen) - Uebersetzungen: 17 neue Mail-Keys in allen 6 Sprachen Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
80 lines
4.2 KiB
PHP
80 lines
4.2 KiB
PHP
<x-layouts.installer :currentStep="1">
|
|
@if (! session('setup_token_hash'))
|
|
{{-- Token-Eingabe: User muss zuerst das Setup-Token eingeben --}}
|
|
<h2 class="text-lg font-semibold text-gray-900 mb-4">Setup-Token</h2>
|
|
<div class="bg-amber-50 border border-amber-200 rounded-lg p-4 mb-6">
|
|
<p class="text-sm text-amber-700 mb-3">
|
|
Zum Schutz der Installation wird ein Setup-Token benoetigt.
|
|
Du findest es in der Datei <code class="bg-amber-100 px-1 rounded font-mono text-xs">storage/setup-token</code>
|
|
auf dem Server (per FTP oder Dateimanager).
|
|
</p>
|
|
<form method="GET" action="{{ route('install.requirements') }}" class="flex gap-2">
|
|
<input type="text" name="token"
|
|
class="flex-1 px-3 py-2 text-sm border border-gray-300 rounded-md focus:ring-blue-500 focus:border-blue-500"
|
|
placeholder="Token eingeben..." required autofocus>
|
|
<button type="submit"
|
|
class="px-4 py-2 text-sm font-medium text-white bg-blue-600 rounded-md hover:bg-blue-700 transition">
|
|
Bestaetigen
|
|
</button>
|
|
</form>
|
|
</div>
|
|
@else
|
|
|
|
<h2 class="text-lg font-semibold text-gray-900 mb-4">Systemvoraussetzungen</h2>
|
|
<p class="text-sm text-gray-600 mb-4">Bitte stelle sicher, dass alle Voraussetzungen erfüllt sind, bevor du fortfährst.</p>
|
|
|
|
<div class="overflow-x-auto">
|
|
<table class="w-full text-sm">
|
|
<thead>
|
|
<tr class="border-b border-gray-200">
|
|
<th class="text-left py-2 px-2 font-medium text-gray-700">Prüfung</th>
|
|
<th class="text-left py-2 px-2 font-medium text-gray-700">Status</th>
|
|
<th class="text-center py-2 px-1 font-medium text-gray-700 w-10">OK</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach ($checks as $check)
|
|
<tr class="border-b border-gray-100 {{ $check['passed'] ? '' : ($check['required'] ? 'bg-red-50' : 'bg-yellow-50') }}">
|
|
<td class="py-2 px-2 text-gray-800">
|
|
{{ $check['name'] }}
|
|
@if (! $check['required'])
|
|
<span class="text-xs text-gray-400">(optional)</span>
|
|
@endif
|
|
</td>
|
|
<td class="py-2 px-2 text-gray-500">{{ $check['current'] }}</td>
|
|
<td class="py-2 px-1 text-center">
|
|
@if ($check['passed'])
|
|
<svg class="w-5 h-5 text-green-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/></svg>
|
|
@elseif ($check['required'])
|
|
<svg class="w-5 h-5 text-red-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/></svg>
|
|
@else
|
|
<svg class="w-5 h-5 text-yellow-500 mx-auto" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
|
|
@endif
|
|
</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="mt-6 flex justify-between items-center">
|
|
<a href="{{ route('install.requirements') }}"
|
|
class="px-4 py-2 text-sm text-gray-600 bg-gray-100 rounded-md hover:bg-gray-200 transition">
|
|
Erneut prüfen
|
|
</a>
|
|
|
|
@if ($allPassed)
|
|
<a href="{{ route('install.database') }}"
|
|
class="px-5 py-2 text-sm font-medium text-white bg-blue-600 rounded-md hover:bg-blue-700 transition">
|
|
Weiter
|
|
</a>
|
|
@else
|
|
<span class="px-5 py-2 text-sm font-medium text-white bg-gray-300 rounded-md cursor-not-allowed">
|
|
Weiter
|
|
</span>
|
|
@endif
|
|
</div>
|
|
|
|
@endif
|
|
</x-layouts.installer>
|