- Adds Character model with survival needs (hunger, thirst, energy) and state machine - Implements city:tick world ticker for offline progression every minute - Adds city territory expansion and building construction system - Introduces job economy, inventory, and transaction audit trail - Adds social graph (friends, marriage, children) and character chat - Implements admin approval workflow for new registrations - Adds hospital admission system for traffic accidents - Includes comprehensive feature tests and world seeders
63 lines
2.5 KiB
PHP
Executable File
63 lines
2.5 KiB
PHP
Executable File
@extends('layouts.app')
|
|
|
|
@section('title', __('Login'))
|
|
|
|
@section('content')
|
|
<div style="max-width: 420px; margin: 0 auto;">
|
|
<div class="card">
|
|
<h2 style="margin-top:0; color:#fff;">{{ __('Login') }}</h2>
|
|
|
|
<form method="POST" action="{{ route('login') }}">
|
|
@csrf
|
|
|
|
<div class="field">
|
|
<label for="email">{{ __('Email') }}</label>
|
|
<input id="email" type="email" name="email" value="{{ old('email') }}" required autofocus autocomplete="username">
|
|
@error('email')<div class="error">{{ $message }}</div>@enderror
|
|
</div>
|
|
|
|
<div class="field">
|
|
<label for="password">{{ __('Password') }}</label>
|
|
<div class="pw-wrap">
|
|
<input id="password" type="password" name="password" required autocomplete="current-password">
|
|
<button type="button" class="eye-toggle" data-eye="password" aria-label="Mostrar senha">👁️</button>
|
|
</div>
|
|
@error('password')<div class="error">{{ $message }}</div>@enderror
|
|
</div>
|
|
|
|
<div class="field" style="display:flex; align-items:center; gap:.5rem;">
|
|
<input type="checkbox" id="remember" name="remember" value="1" @checked(old('remember'))>
|
|
<label for="remember" style="margin:0;">{{ __('Remember Me') }}</label>
|
|
</div>
|
|
|
|
<div class="field">
|
|
<label for="captcha">{{ $captcha['question'] }}</label>
|
|
<input id="captcha" type="number" name="captcha" required inputmode="numeric">
|
|
@error('captcha')<div class="error">{{ $message }}</div>@enderror
|
|
</div>
|
|
|
|
<button type="submit" class="btn btn-primary" style="width:100%; padding:.8rem;">{{ __('Login') }}</button>
|
|
</form>
|
|
|
|
<p style="margin-top:1rem; font-size:.9rem; color:var(--muted);">
|
|
{{ __('welcome.no_account') }} <a href="{{ route('register') }}">{{ __('Register') }}</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
@endsection
|
|
|
|
@push('scripts')
|
|
<script>
|
|
// Eye icon toggles password visibility on the login form.
|
|
document.querySelectorAll('.eye-toggle').forEach(function (btn) {
|
|
btn.addEventListener('click', function () {
|
|
var input = document.getElementById(btn.dataset.eye);
|
|
if (!input) return;
|
|
var showing = input.type === 'text';
|
|
input.type = showing ? 'password' : 'text';
|
|
btn.textContent = showing ? '👁️' : '🙈';
|
|
});
|
|
});
|
|
</script>
|
|
@endpush
|