Files
timebank-cc-public/resources/views/auth/login.blade.php
Ronald Huynen 2547717edb Initial commit
2026-03-23 21:37:59 +01:00

126 lines
6.0 KiB
PHP

@php
if (request()->has('redirect')) {
session(['url.intended' => request()->query('redirect')]);
}
@endphp
<x-guest-layout>
<x-jetstream.authentication-card>
<x-slot name="logo">
<x-jetstream.application-mark class="hidden md:block md:h-20 xl:h-28 w-auto md:mt-3" />
</x-slot>
@if(isMaintenanceMode() || session('maintenance_mode_active'))
<div class="mb-6 rounded-md bg-gray-50 border border-gray-300 p-4">
<div class="flex">
<div class="flex-shrink-0">
<svg class="h-5 w-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd" />
</svg>
</div>
<div class="ml-3">
<h3 class="text-sm font-medium text-gray-800">
{{ __('Site under maintenance') }}
</h3>
<div class="mt-2 text-sm text-gray-600">
<p>
{{ __('The site is currently undergoing maintenance, and login is temporarily unavailable. Thank you for your patience.') }}
</p>
</div>
</div>
</div>
</div>
@endif
@if ($errors->any())
<div class="mb-4">
@if(session('maintenance_mode_active'))
{{-- Show maintenance error without "Whoops!" heading --}}
<div class="rounded-md bg-red-50 border border-red-200 p-4">
<div class="flex">
<div class="flex-shrink-0">
<svg class="h-5 w-5 text-red-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z" clip-rule="evenodd" />
</svg>
</div>
<div class="ml-3">
<div class="text-sm text-red-800">
@foreach ($errors->all() as $error)
<p>{{ $error }}</p>
@endforeach
</div>
</div>
</div>
</div>
@else
{{-- Show standard validation errors with "Whoops!" heading --}}
<x-jetstream.validation-errors />
@endif
</div>
@endif
@if (session('status'))
<div class="mb-4 font-medium text-sm text-green-600">
{{ session('status') }}
</div>
@endif
<form method="POST" action="{{ route('login') }}">
@csrf
<div>
<x-jetstream.label for="name" value="{!! __('Email or username') !!}" />
<x-jetstream.input id="name" class="block mt-1 w-full" type="text" name="name" value="{{ old('name', request()->input('name')) }}" required autofocus autocomplete="username" />
</div>
<div class="mt-4" x-data="{ showPassword: false }">
<x-jetstream.label for="password" value="{{ __('Password') }}" />
<div class="relative">
<x-jetstream.input id="password" class="block mt-1 w-full pr-10" ::type="showPassword ? 'text' : 'password'" name="password" required autocomplete="current-password" />
<div class="absolute inset-y-0 right-0 pr-3 flex items-center text-sm leading-5">
<button type="button" @click="showPassword = !showPassword" class="ring-opacity-70 hover:opacity-90 focus:outline-none focus:text-theme-primary">
<template x-if="showPassword">
<x-icon name="eye" class="h-5 w-5" />
</template>
<template x-if="!showPassword">
<x-icon name="eye-slash" class="h-5 w-5 opacity-70" />
</template>
</button>
</div>
</div>
</div>
<div class="flex items-center justify-end mt-8 mb-8">
@if (Route::has('password.request'))
<a class="underline text-sm text-theme-primary hover:text-theme-primary" href="{{ route('password.request') }}">
{{ __('Forgot your password?') }}
</a>
@endif
<x-jetstream.button class="ml-4">
{{ __('Log in') }}
</x-jetstream.button>
</div>
</form>
</x-jetstream.authentication-card>
@push('scripts')
<script>
// Check if there's a redirect parameter in the URL
const urlParams = new URLSearchParams(window.location.search);
const redirectUrl = urlParams.get('redirect');
if (redirectUrl) {
// Send to server to store in session
fetch('{{ route("store-intended-url") }}', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRF-TOKEN': '{{ csrf_token() }}'
},
body: JSON.stringify({ url: redirectUrl })
});
}
</script>
@endpush
</x-guest-layout>