Initial commit
This commit is contained in:
28
resources/views/auth/confirm-password.blade.php
Normal file
28
resources/views/auth/confirm-password.blade.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<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>
|
||||
|
||||
<div class="mb-4 text-sm text-theme-secondary">
|
||||
{{ __('This is a secure area of the application. Please confirm your password before continuing.') }}
|
||||
</div>
|
||||
|
||||
<x-jetstream.validation-errors class="mb-4" />
|
||||
|
||||
<form method="POST" action="{{ route('password.confirm') }}">
|
||||
@csrf
|
||||
|
||||
<div>
|
||||
<x-jetstream.label for="password" value="{{ __('Password') }}" />
|
||||
<x-jetstream.input id="password" class="block mt-1 w-full" type="password" name="password" required autocomplete="current-password" autofocus />
|
||||
</div>
|
||||
|
||||
<div class="flex justify-end mt-4">
|
||||
<x-jetstream.button class="ml-4">
|
||||
{{ __('Confirm') }}
|
||||
</x-jetstream.button>
|
||||
</div>
|
||||
</form>
|
||||
</x-jetstream.authentication-card>
|
||||
</x-guest-layout>
|
||||
34
resources/views/auth/forgot-non-user-password.blade.php
Normal file
34
resources/views/auth/forgot-non-user-password.blade.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<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>
|
||||
|
||||
<div class="mb-4 text-sm text-theme-secondary">
|
||||
{{ __('Forgot the profile\'s password? No problem. Just let us know the email address of this profile and we will email a password reset link that will allow you to choose a new one.') }}
|
||||
</div>
|
||||
|
||||
@if (session('status'))
|
||||
<div class="mb-4 font-medium text-sm text-green-600">
|
||||
{{ session('status') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<x-jetstream.validation-errors class="mb-4" />
|
||||
|
||||
<form method="POST" action="{{ route('non-user.password.email', ['profileType' => $profileType]) }}">
|
||||
@csrf
|
||||
|
||||
<div class="block">
|
||||
<x-jetstream.label for="email" value="{{ __('Email') }}" />
|
||||
<x-jetstream.input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus />
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-end mt-4">
|
||||
<x-jetstream.button>
|
||||
{{ __('Email Password Reset Link') }}
|
||||
</x-jetstream.button>
|
||||
</div>
|
||||
</form>
|
||||
</x-jetstream.authentication-card>
|
||||
</x-guest-layout>
|
||||
34
resources/views/auth/forgot-password.blade.php
Normal file
34
resources/views/auth/forgot-password.blade.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<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>
|
||||
|
||||
<div class="mb-4 text-sm text-theme-secondary">
|
||||
{{ __('Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one.') }}
|
||||
</div>
|
||||
|
||||
@if (session('status'))
|
||||
<div class="mb-4 font-medium text-sm text-green-600">
|
||||
{{ session('status') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<x-jetstream.validation-errors class="mb-4" />
|
||||
|
||||
<form method="POST" action="{{ route('password.email') }}">
|
||||
@csrf
|
||||
|
||||
<div class="block">
|
||||
<x-jetstream.label for="email" value="{{ __('Email') }}" />
|
||||
<x-jetstream.input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus />
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-end mt-4">
|
||||
<x-jetstream.button>
|
||||
{{ __('Email Password Reset Link') }}
|
||||
</x-jetstream.button>
|
||||
</div>
|
||||
</form>
|
||||
</x-jetstream.authentication-card>
|
||||
</x-guest-layout>
|
||||
125
resources/views/auth/login.blade.php
Normal file
125
resources/views/auth/login.blade.php
Normal file
@@ -0,0 +1,125 @@
|
||||
@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>
|
||||
94
resources/views/auth/register-step2.blade DELME.php
Normal file
94
resources/views/auth/register-step2.blade DELME.php
Normal file
@@ -0,0 +1,94 @@
|
||||
<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>
|
||||
|
||||
<x-jetstream.section-title>
|
||||
<x-slot name="title">{{ __('Please introduce yourself in a few sentences') }}</x-slot>
|
||||
<x-slot name="description">
|
||||
<div class="my-4">{{ __('Other Timebankers like to know who you are before they start their first exchange with you.') }}</div>
|
||||
<div class="my-4">{{ __('Explaining why you like to be part of our time economy can also help with getting new exhanges.') }}</div>
|
||||
|
||||
<!--- Stepper --->
|
||||
<h1 class="mt-12 text-theme-secondary">{{ __('Step 2 of 3') }}</h1>
|
||||
<div class="mb-10 mt-2 relative inset-x-0 bottom-0 h-4 rounded-full overflow-hidden">
|
||||
<div class=" w-full h-full bg-theme-surface absolute "></div>
|
||||
<div class=" h-full bg-theme-secondary absolute" style="width:66%"></div>
|
||||
</div>
|
||||
|
||||
</x-slot>
|
||||
</x-jetstream.section-title>
|
||||
|
||||
|
||||
<div class="mt-5 md:mt-0 md:col-span-2">
|
||||
<x-jetstream.validation-errors class="mb-4" />
|
||||
|
||||
<!---- Right section --->
|
||||
<div class="px-4 py-5 bg-theme-background sm:p-6 shadow sm:rounded-tl-md sm:rounded-tr-md">
|
||||
<div class="mt-0 text-2xl">
|
||||
{{ __('') }}
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-6 gap-6">
|
||||
<div class="col-span-6 sm:col-span-4">
|
||||
|
||||
<form method="POST" action="{{ route('register-step2.create') }}" enctype="multipart/form-data">
|
||||
@csrf
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="mt-4">
|
||||
<x-jetstream.label for="photo" value="{{ __('Profile photo') }}" />
|
||||
<input type="file" name="photo" />
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mt-4">
|
||||
<x-jetstream.label for="about" value="{{ __('Short intro about yourself') }}" />
|
||||
<x-jetstream.input id="about" class="block mt-1 w-full" type="text" name="about" :value="old('about')" required autofocus autocomplete="about" />
|
||||
</div>
|
||||
|
||||
<div class="mt-4">
|
||||
<x-jetstream.label for="motivation" value="{{ __('Why do you like to joinTimebank.cc?') }}" />
|
||||
<x-jetstream.input id="motivation" class="block mt-1 w-full" type="text" name="motivation" :value="old('motivation')" required autofocus autocomplete="motivation" />
|
||||
</div>
|
||||
|
||||
<div class="mt-4">
|
||||
<x-jetstream.label for="date_of_birth" value="{{ __('Date of birth') }}" />
|
||||
<x-jetstream.input id="date_of_birth" class="block mt-1 w-full" type="text" name="date_of_birth" :value="old('date_of_birth')" required autofocus autocomplete="date_of_birth" />
|
||||
</div>
|
||||
|
||||
|
||||
@if (Laravel\Jetstream\Jetstream::hasTermsAndPrivacyPolicyFeature())
|
||||
<div class="mt-4">
|
||||
<x-jetstream.label for="terms">
|
||||
<div class="flex items-center">
|
||||
<x-jetstream.checkbox name="terms" id="terms" />
|
||||
|
||||
<div class="ml-2">
|
||||
{!! __('I agree to the :terms_of_service and :privacy_policy', [
|
||||
'terms_of_service' => '<a target="_blank" href="'.route('app.terms.show').'" class="underline text-sm text-theme-primary hover:text-theme-primary">'.__('Terms of Service').'</a>',
|
||||
'privacy_policy' => '<a target="_blank" href="'.route('policy.show').'" class="underline text-sm text-theme-primary hover:text-theme-primary">'.__('Privacy Policy').'</a>',
|
||||
]) !!}
|
||||
</div>
|
||||
</div>
|
||||
</x-jetstream.label>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-end mt-4">
|
||||
<x-jetstream.button class="ml-4">
|
||||
{{ __('Register') }}
|
||||
</x-jetstream.button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</x-jetstream.authentication-card>
|
||||
</x-guest-layout>
|
||||
60
resources/views/auth/register.blade original.php
Normal file
60
resources/views/auth/register.blade original.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<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>
|
||||
|
||||
<x-jetstream.validation-errors class="mb-4" />
|
||||
|
||||
<form method="POST" action="{{ route('register') }}">
|
||||
@csrf
|
||||
|
||||
<div>
|
||||
<x-jetstream.label for="name" value="{{ __('Name') }}" />
|
||||
<x-jetstream.input id="name" class="block mt-1 w-full" type="text" name="name" :value="old('name')" required autofocus autocomplete="name" />
|
||||
</div>
|
||||
|
||||
<div class="mt-4">
|
||||
<x-jetstream.label for="email" value="{{ __('Email') }}" />
|
||||
<x-jetstream.input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required />
|
||||
</div>
|
||||
|
||||
<div class="mt-4">
|
||||
<x-jetstream.label for="password" value="{{ __('Password') }}" />
|
||||
<x-jetstream.input id="password" class="block mt-1 w-full" type="password" name="password" required autocomplete="new-password" />
|
||||
</div>
|
||||
|
||||
<div class="mt-4">
|
||||
<x-jetstream.label for="password_confirmation" value="{{ __('Confirm Password') }}" />
|
||||
<x-jetstream.input id="password_confirmation" class="block mt-1 w-full" type="password" name="password_confirmation" required autocomplete="new-password" />
|
||||
</div>
|
||||
|
||||
@if (Laravel\Jetstream\Jetstream::hasTermsAndPrivacyPolicyFeature())
|
||||
<div class="mt-4">
|
||||
<x-jetstream.label for="terms">
|
||||
<div class="flex items-center">
|
||||
<x-jetstream.checkbox name="terms" id="terms" />
|
||||
|
||||
<div class="ml-2">
|
||||
{!! __('I agree to the :terms_of_service and :privacy_policy', [
|
||||
'terms_of_service' => '<a target="_blank" href="'.route('app.terms.show').'" class="underline text-sm text-gray-600 hover:text-gray-900">'.__('Terms of Service').'</a>',
|
||||
'privacy_policy' => '<a target="_blank" href="'.route('policy.show').'" class="underline text-sm text-gray-600 hover:text-gray-900">'.__('Privacy Policy').'</a>',
|
||||
]) !!}
|
||||
</div>
|
||||
</div>
|
||||
</x-jetstream.label>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="flex items-center justify-end mt-4">
|
||||
<a class="underline text-sm text-gray-600 hover:text-gray-900" href="{{ route('login') }}">
|
||||
{{ __('Already registered?') }}
|
||||
</a>
|
||||
|
||||
<x-jetstream.button class="ml-4">
|
||||
{{ __('Register') }}
|
||||
</x-jetstream.button>
|
||||
</div>
|
||||
</form>
|
||||
</x-jetstream.authentication-card>
|
||||
</x-guest-layout>
|
||||
6
resources/views/auth/register.blade.php
Normal file
6
resources/views/auth/register.blade.php
Normal file
@@ -0,0 +1,6 @@
|
||||
<x-guest-layout>
|
||||
<div class="flex items-center justify-center min-h-screen">
|
||||
<!-- Registration Livewire Component (contains modals) -->
|
||||
@livewire('registration')
|
||||
</div>
|
||||
</x-guest-layout>
|
||||
63
resources/views/auth/reset-non-user-password.blade.php
Normal file
63
resources/views/auth/reset-non-user-password.blade.php
Normal file
@@ -0,0 +1,63 @@
|
||||
<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>
|
||||
|
||||
<x-jetstream.validation-errors class="mb-4" />
|
||||
|
||||
<form method="POST" action="{{ route('non-user.password.update', ['profileType' => $profileType]) }}">
|
||||
@csrf
|
||||
|
||||
<input type="hidden" name="token" value="{{ $token }}">
|
||||
<input type="hidden" name="profileType" value="{{ $profileType }}">
|
||||
|
||||
|
||||
<div class="block">
|
||||
<x-jetstream.label for="email" value="{{ __('Email') }}" />
|
||||
<x-jetstream.input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email', $email)" required autofocus />
|
||||
</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="new-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="text-theme-muted hover:text-theme-primary focus:outline-none focus:text-theme-primary ring-opacity-70 hover:opacity-90">
|
||||
<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="mt-4" x-data="{ showPassword: false }">
|
||||
<x-jetstream.label for="password_confirmation" value="{{ __('Confirm Password') }}" />
|
||||
<div class="relative">
|
||||
<x-jetstream.input id="password_confirmation" class="block mt-1 w-full pr-10" ::type="showPassword ? 'text' : 'password'" name="password_confirmation" required autocomplete="new-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="text-theme-muted hover:text-theme-primary focus:outline-none focus:text-theme-primary ring-opacity-70 hover:opacity-90">
|
||||
<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-4">
|
||||
<x-jetstream.button>
|
||||
{{ __('Reset password') }}
|
||||
</x-jetstream.button>
|
||||
</div>
|
||||
</form>
|
||||
</x-jetstream.authentication-card>
|
||||
</x-guest-layout>
|
||||
61
resources/views/auth/reset-password.blade.php
Normal file
61
resources/views/auth/reset-password.blade.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<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>
|
||||
|
||||
<x-jetstream.validation-errors class="mb-4" />
|
||||
|
||||
<form method="POST" action="{{ route('password.update') }}">
|
||||
@csrf
|
||||
|
||||
<input type="hidden" name="token" value="{{ $request->route('token') }}">
|
||||
|
||||
<div class="block">
|
||||
<x-jetstream.label for="email" value="{{ __('Email') }}" />
|
||||
<x-jetstream.input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email', $request->email)" required autofocus />
|
||||
</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="new-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="text-theme-muted hover:text-theme-primary 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" />
|
||||
</template>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-4" x-data="{ showPassword: false }">
|
||||
<x-jetstream.label for="password_confirmation" value="{{ __('Confirm Password') }}" />
|
||||
<div class="relative">
|
||||
<x-jetstream.input id="password_confirmation" class="block mt-1 w-full pr-10" ::type="showPassword ? 'text' : 'password'" name="password_confirmation" required autocomplete="new-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="text-theme-muted hover:text-theme-primary 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" />
|
||||
</template>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="flex items-center justify-end mt-4">
|
||||
<x-jetstream.button>
|
||||
{{ __('Reset password') }}
|
||||
</x-jetstream.button>
|
||||
</div>
|
||||
</form>
|
||||
</x-jetstream.authentication-card>
|
||||
</x-guest-layout>
|
||||
57
resources/views/auth/two-factor-challenge.blade.php
Normal file
57
resources/views/auth/two-factor-challenge.blade.php
Normal file
@@ -0,0 +1,57 @@
|
||||
t<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>
|
||||
|
||||
<div x-data="{ recovery: false }">
|
||||
<div class="mb-4 text-sm text-theme-secondary" x-show="! recovery">
|
||||
{{ __('Please confirm access to your account by entering the authentication code provided by your authenticator application.') }}
|
||||
</div>
|
||||
|
||||
<div class="mb-4 text-sm text-theme-secondary" x-show="recovery">
|
||||
{{ __('Please confirm access to your account by entering one of your emergency recovery codes.') }}
|
||||
</div>
|
||||
|
||||
<x-jetstream.validation-errors class="mb-4" />
|
||||
|
||||
<form method="POST" action="{{ route('two-factor.login') }}">
|
||||
@csrf
|
||||
|
||||
<div class="mt-4" x-show="! recovery">
|
||||
<x-jetstream.label for="code" value="{{ __('Code') }}" />
|
||||
<x-jetstream.input id="code" class="block mt-1 w-full" type="text" inputmode="numeric" name="code" autofocus x-ref="code" autocomplete="one-time-code" />
|
||||
</div>
|
||||
|
||||
<div class="mt-4" x-show="recovery">
|
||||
<x-jetstream.label for="recovery_code" value="{{ __('Recovery Code') }}" />
|
||||
<x-jetstream.input id="recovery_code" class="block mt-1 w-full" type="text" name="recovery_code" x-ref="recovery_code" autocomplete="one-time-code" />
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-end mt-4">
|
||||
<button type="button" class="text-sm text-theme-secondary hover:text-theme-primary underline cursor-pointer"
|
||||
x-show="! recovery"
|
||||
x-on:click="
|
||||
recovery = true;
|
||||
$nextTick(() => { $refs.recovery_code.focus() })
|
||||
">
|
||||
{{ __('Use a recovery code') }}
|
||||
</button>
|
||||
|
||||
<button type="button" class="text-sm text-theme-secondary hover:text-theme-primary underline cursor-pointer"
|
||||
x-show="recovery"
|
||||
x-on:click="
|
||||
recovery = false;
|
||||
$nextTick(() => { $refs.code.focus() })
|
||||
">
|
||||
{{ __('Use an authentication code') }}
|
||||
</button>
|
||||
|
||||
<x-jetstream.button class="ml-4">
|
||||
{{ __('Log in') }}
|
||||
</x-jetstream.button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</x-jetstream.authentication-card>
|
||||
</x-guest-layout>
|
||||
53
resources/views/auth/verify-email.blade.php
Normal file
53
resources/views/auth/verify-email.blade.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<x-app-layout>
|
||||
<div class="min-h-screen flex flex-col justify-center items-center py-6 relative overflow-hidden">
|
||||
<!-- Background Image -->
|
||||
<div class="absolute inset-0 z-0">
|
||||
@livewire('welcome.login-landing-post', ['type' => 'SiteContents\Welcome\Landing' ?? null, 'random' => true, 'limit' => 1])
|
||||
</div>
|
||||
|
||||
<!-- Verification Card -->
|
||||
<div class="mx-8 sm:max-w-md px-12 py-6 bg-theme-background dark:bg-theme-secondary backdrop-blur-sm shadow-2xl rounded-lg z-20 relative">
|
||||
<div class="flex justify-center mb-8">
|
||||
<x-jetstream.application-mark class="h-20 xl:h-28 w-auto" />
|
||||
</div>
|
||||
|
||||
<div class="mb-4 text-sm text-theme-secondary">
|
||||
{{ __('Before continuing, could you verify your email address by clicking on the link we just emailed to you? If you didn\'t receive the email, we will gladly send you another.') }}
|
||||
</div>
|
||||
|
||||
@if (session('status') == 'verification-link-sent')
|
||||
<div class="mb-4 font-medium text-sm text-green-600">
|
||||
{{ __('A new verification link has been sent to the email address you provided in your profile settings.') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="mt-4 mb-4 flex flex-col gap-4">
|
||||
<form method="POST" action="{{ route('verification.send') }}" class="flex justify-center">
|
||||
@csrf
|
||||
|
||||
<div>
|
||||
<x-jetstream.button type="submit">
|
||||
{{ __('Resend Verification Email') }}
|
||||
</x-jetstream.button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="flex flex-col gap-2">
|
||||
<a
|
||||
href="{{ LaravelLocalization::localizeURL(route('profile.settings')) }}"
|
||||
class="underline text-sm text-theme-secondary hover:text-theme-primary"
|
||||
>
|
||||
{{ __('Edit Profile') }}</a>
|
||||
|
||||
<form method="POST" action="{{ route('logout') }}" class="inline">
|
||||
@csrf
|
||||
|
||||
<button type="submit" class="underline text-sm text-theme-secondary hover:text-theme-primary">
|
||||
{{ __('Log out') }}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</x-app-layout>
|
||||
Reference in New Issue
Block a user