Files
WebAPP/resources/views/installer/steps/app.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

87 lines
5.5 KiB
PHP

<x-layouts.installer :currentStep="3">
<h2 class="text-lg font-semibold text-gray-900 mb-4">App-Einstellungen</h2>
<p class="text-sm text-gray-600 mb-4">Gib den Namen deines Vereins und die Administrator-Zugangsdaten ein.</p>
<form method="POST" action="{{ route('install.app.store') }}">
@csrf
{{-- App settings --}}
<div class="space-y-4 mb-6">
<h3 class="text-sm font-semibold text-gray-700 uppercase tracking-wider">Verein</h3>
<div>
<label for="app_name" class="block text-sm font-medium text-gray-700 mb-1">Vereinsname / App-Name *</label>
<input type="text" name="app_name" id="app_name" value="{{ old('app_name', session('installer.app_name', '')) }}"
required maxlength="100" placeholder="z.B. SG Musterstadt Handball"
class="w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
@error('app_name') <p class="mt-1 text-xs text-red-600">{{ $message }}</p> @enderror
</div>
<div>
<label for="app_slogan" class="block text-sm font-medium text-gray-700 mb-1">Slogan</label>
<input type="text" name="app_slogan" id="app_slogan" value="{{ old('app_slogan', session('installer.app_slogan', '')) }}"
maxlength="255" placeholder="z.B. Gemeinsam stark — auf und neben dem Spielfeld"
class="w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
<p class="mt-1 text-xs text-gray-400">Optional. Wird auf der Login-Seite und im Footer angezeigt.</p>
@error('app_slogan') <p class="mt-1 text-xs text-red-600">{{ $message }}</p> @enderror
</div>
<div>
<label for="app_url" class="block text-sm font-medium text-gray-700 mb-1">App-URL *</label>
<input type="url" name="app_url" id="app_url" value="{{ old('app_url', session('installer.app_url', request()->getSchemeAndHttpHost())) }}"
required placeholder="https://handball.example.com"
class="w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
<p class="mt-1 text-xs text-gray-400">Die URL, unter der die App erreichbar ist.</p>
@error('app_url') <p class="mt-1 text-xs text-red-600">{{ $message }}</p> @enderror
</div>
</div>
{{-- Admin credentials --}}
<div class="space-y-4 border-t border-gray-200 pt-5">
<h3 class="text-sm font-semibold text-gray-700 uppercase tracking-wider">Administrator-Konto</h3>
<div>
<label for="admin_name" class="block text-sm font-medium text-gray-700 mb-1">Name *</label>
<input type="text" name="admin_name" id="admin_name" value="{{ old('admin_name', session('installer.admin_name', '')) }}"
required maxlength="255" placeholder="Vor- und Nachname"
class="w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
@error('admin_name') <p class="mt-1 text-xs text-red-600">{{ $message }}</p> @enderror
</div>
<div>
<label for="admin_email" class="block text-sm font-medium text-gray-700 mb-1">E-Mail *</label>
<input type="email" name="admin_email" id="admin_email" value="{{ old('admin_email', session('installer.admin_email', '')) }}"
required maxlength="255" placeholder="admin@example.com"
class="w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
@error('admin_email') <p class="mt-1 text-xs text-red-600">{{ $message }}</p> @enderror
</div>
<div>
<label for="admin_password" class="block text-sm font-medium text-gray-700 mb-1">Passwort *</label>
<input type="password" name="admin_password" id="admin_password"
required minlength="8" placeholder="Mindestens 8 Zeichen"
class="w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
@error('admin_password') <p class="mt-1 text-xs text-red-600">{{ $message }}</p> @enderror
</div>
<div>
<label for="admin_password_confirmation" class="block text-sm font-medium text-gray-700 mb-1">Passwort bestätigen *</label>
<input type="password" name="admin_password_confirmation" id="admin_password_confirmation"
required minlength="8" placeholder="Passwort wiederholen"
class="w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500">
</div>
</div>
<div class="mt-6 flex justify-between items-center">
<a href="{{ route('install.database') }}"
class="px-4 py-2 text-sm text-gray-600 bg-gray-100 rounded-md hover:bg-gray-200 transition">
Zurück
</a>
<button type="submit"
class="px-5 py-2 text-sm font-medium text-white bg-blue-600 rounded-md hover:bg-blue-700 transition">
Weiter
</button>
</div>
</form>
</x-layouts.installer>