Files
WebAPP/resources/views/installer/steps/requirements.blade.php
Rhino 2e24a40d68 Stand: SMTP-Test, Admin-Mail-Tab, Notifiable-Fix, Lazy-Quill
- 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>
2026-03-02 07:30:37 +01:00

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>