Resto de las vistas y plantillas del sistema
This commit is contained in:
@@ -12,8 +12,11 @@
|
||||
<div class="col-12 col-sm-10 col-md-8 col-lg-5">
|
||||
<div class="card shadow-sm border-0">
|
||||
<div class="card-body p-4 p-md-5">
|
||||
<h1 class="h4 mb-1">Login de Cliente</h1>
|
||||
<p class="text-muted mb-4">Ingresa con tu correo y contraseña</p>
|
||||
<h1 class="h4 mb-1 text-center">Login de Cliente</h1>
|
||||
|
||||
<div class="alert alert-info" role="alert">
|
||||
Para iniciar sesión, primero debes ser cliente del estudio jurídico.
|
||||
</div>
|
||||
|
||||
@if (session('login_error'))
|
||||
<div class="alert alert-danger" role="alert">
|
||||
@@ -27,6 +30,20 @@
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($errors->any())
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<ul class="mb-0 ps-3">
|
||||
@foreach($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="alert alert-warning py-2" role="alert">
|
||||
<strong>Intentos restantes:</strong> {{ $intentosRestantes ?? 5 }} de {{ $intentosMaximos ?? 5 }}
|
||||
</div>
|
||||
|
||||
<form method="POST" action="/login/cliente" class="d-grid gap-3">
|
||||
@csrf
|
||||
<div>
|
||||
@@ -39,19 +56,28 @@
|
||||
<input class="form-control" id="contra" name="contra" type="password" required>
|
||||
</div>
|
||||
|
||||
<div style="position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;" aria-hidden="true">
|
||||
<label class="form-label" for="website">No completar este campo</label>
|
||||
<input class="form-control" id="website" name="website" type="text" value="{{ old('website') }}" tabindex="-1" autocomplete="off">
|
||||
</div>
|
||||
|
||||
<button class="btn btn-primary" type="submit">Ingresar</button>
|
||||
</form>
|
||||
|
||||
<div class="text-center mt-3">
|
||||
<a href="/cliente/recuperar-credenciales" class="small text-muted">¿Olvidó sus credenciales?</a>
|
||||
</div>
|
||||
|
||||
<hr class="my-4">
|
||||
<p class="mb-0 text-center">
|
||||
¿Sos profesional o administrador?
|
||||
<a href="/login/personal">Ir a login de personal</a>
|
||||
</p>
|
||||
<div class="d-grid">
|
||||
<a href="/" class="btn btn-outline-secondary">Volver al inicio</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
@include('partials.reportar-falla-boton')
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,8 +12,7 @@
|
||||
<div class="col-12 col-sm-10 col-md-8 col-lg-5">
|
||||
<div class="card shadow-sm border-0">
|
||||
<div class="card-body p-4 p-md-5">
|
||||
<h1 class="h4 mb-1">Login de Personal</h1>
|
||||
<p class="text-muted mb-4">Acceso para profesionales y administradores.</p>
|
||||
<h1 class="h4 mb-1 text-center">Login de Personal</h1>
|
||||
|
||||
@if (session('login_error'))
|
||||
<div class="alert alert-danger" role="alert">
|
||||
@@ -27,6 +26,20 @@
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($errors->any())
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<ul class="mb-0 ps-3">
|
||||
@foreach($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="alert alert-warning py-2" role="alert">
|
||||
<strong>Intentos restantes:</strong> {{ $intentosRestantes ?? 5 }} de {{ $intentosMaximos ?? 5 }}
|
||||
</div>
|
||||
|
||||
<form method="POST" action="/login/personal" class="d-grid gap-3">
|
||||
@csrf
|
||||
<div>
|
||||
@@ -39,24 +52,30 @@
|
||||
<input class="form-control" id="contra" name="contra" type="password" required>
|
||||
</div>
|
||||
|
||||
<div style="position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;" aria-hidden="true">
|
||||
<label class="form-label" for="website">No completar este campo</label>
|
||||
<input class="form-control" id="website" name="website" type="text" value="{{ old('website') }}" tabindex="-1" autocomplete="off">
|
||||
</div>
|
||||
|
||||
<button class="btn btn-primary" type="submit">Ingresar</button>
|
||||
</form>
|
||||
|
||||
<div class="text-center mt-3">
|
||||
<a href="/personal/recuperar-credenciales" class="small text-muted">Recuperacion para personal</a>
|
||||
</div>
|
||||
<div class="text-center mt-2">
|
||||
<a href="/admin/recuperar-credenciales" class="small text-muted">Recuperación para administrador</a>
|
||||
</div>
|
||||
|
||||
<hr class="my-4">
|
||||
<p class="mb-0 text-center">
|
||||
¿Sos cliente?
|
||||
<a href="/login/cliente">Ir a login de cliente</a>
|
||||
</p>
|
||||
<div class="d-grid mt-3">
|
||||
<a href="/" class="btn btn-outline-secondary">Volver al inicio</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center mt-4">
|
||||
<a href="/" class="btn btn-secondary">Agregar Administrador</a>
|
||||
</div>
|
||||
<div class="text-center mt-2">
|
||||
<a href="/" class="btn btn-secondary">Agregar Profesional</a>
|
||||
</div>
|
||||
</main>
|
||||
@include('partials.reportar-falla-boton')
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
<!doctype html>
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Nuevas credenciales administrador</title>
|
||||
@vite(['resources/css/app.css', 'resources/js/app.js'])
|
||||
</head>
|
||||
<body class="bg-light">
|
||||
<main class="container py-5">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 col-sm-10 col-md-8 col-lg-5">
|
||||
<div class="card shadow-sm border-0">
|
||||
<div class="card-body p-4 p-md-5">
|
||||
<h1 class="h4 mb-1 text-center">Nuevas credenciales administrador</h1>
|
||||
<p class="text-muted text-center small mb-4">Ingresá tu nuevo usuario y tu nueva contraseña de administrador.</p>
|
||||
|
||||
@if($errors->any())
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<ul class="mb-0 ps-3">
|
||||
@foreach($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<form method="POST" action="/admin/recuperar-credenciales/{{ $token }}" class="d-grid gap-3">
|
||||
@csrf
|
||||
<div>
|
||||
<label class="form-label" for="usuario">Nuevo usuario</label>
|
||||
<input class="form-control" id="usuario" name="usuario" type="text" value="{{ old('usuario', $usuarioActual ?? '') }}" required autofocus autocomplete="username">
|
||||
</div>
|
||||
<div>
|
||||
<label class="form-label" for="contra">Nueva contraseña</label>
|
||||
<input class="form-control" id="contra" name="contra" type="password" required minlength="6" maxlength="30" autocomplete="new-password">
|
||||
</div>
|
||||
<div>
|
||||
<label class="form-label" for="contra_confirmation">Confirmar contraseña</label>
|
||||
<input class="form-control" id="contra_confirmation" name="contra_confirmation" type="password" required minlength="6" maxlength="30" autocomplete="new-password">
|
||||
</div>
|
||||
<button class="btn btn-primary" type="submit">Guardar credenciales</button>
|
||||
</form>
|
||||
|
||||
<hr class="my-4">
|
||||
<div class="d-grid">
|
||||
<a href="/login/personal" class="btn btn-outline-secondary">Volver al login</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,51 @@
|
||||
<!doctype html>
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Nueva contraseña personal</title>
|
||||
@vite(['resources/css/app.css', 'resources/js/app.js'])
|
||||
</head>
|
||||
<body class="bg-light">
|
||||
<main class="container py-5">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 col-sm-10 col-md-8 col-lg-5">
|
||||
<div class="card shadow-sm border-0">
|
||||
<div class="card-body p-4 p-md-5">
|
||||
<h1 class="h4 mb-1 text-center">Nueva contraseña</h1>
|
||||
<p class="text-muted text-center small mb-4">Ingresá tu nueva contraseña para el acceso de personal.</p>
|
||||
|
||||
@if($errors->any())
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<ul class="mb-0 ps-3">
|
||||
@foreach($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<form method="POST" action="/personal/recuperar-credenciales/{{ $token }}" class="d-grid gap-3">
|
||||
@csrf
|
||||
<div>
|
||||
<label class="form-label" for="contra">Nueva contraseña</label>
|
||||
<input class="form-control" id="contra" name="contra" type="password" required autofocus minlength="6" maxlength="30">
|
||||
</div>
|
||||
<div>
|
||||
<label class="form-label" for="contra_confirmation">Confirmar contraseña</label>
|
||||
<input class="form-control" id="contra_confirmation" name="contra_confirmation" type="password" required minlength="6" maxlength="30">
|
||||
</div>
|
||||
<button class="btn btn-primary" type="submit">Guardar contraseña</button>
|
||||
</form>
|
||||
|
||||
<hr class="my-4">
|
||||
<div class="d-grid">
|
||||
<a href="/login/personal" class="btn btn-outline-secondary">Volver al login</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,51 @@
|
||||
<!doctype html>
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Nueva contraseña</title>
|
||||
@vite(['resources/css/app.css', 'resources/js/app.js'])
|
||||
</head>
|
||||
<body class="bg-light">
|
||||
<main class="container py-5">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 col-sm-10 col-md-8 col-lg-5">
|
||||
<div class="card shadow-sm border-0">
|
||||
<div class="card-body p-4 p-md-5">
|
||||
<h1 class="h4 mb-1 text-center">Nueva contraseña</h1>
|
||||
<p class="text-muted text-center small mb-4">Ingresá tu nueva contraseña y confirmala para continuar.</p>
|
||||
|
||||
@if($errors->any())
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<ul class="mb-0 ps-3">
|
||||
@foreach($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<form method="POST" action="/cliente/recuperar-credenciales/{{ $token }}" class="d-grid gap-3">
|
||||
@csrf
|
||||
<div>
|
||||
<label class="form-label" for="contra">Nueva contraseña</label>
|
||||
<input class="form-control" id="contra" name="contra" type="password" required autofocus minlength="6" maxlength="30">
|
||||
</div>
|
||||
<div>
|
||||
<label class="form-label" for="contra_confirmation">Confirmar contraseña</label>
|
||||
<input class="form-control" id="contra_confirmation" name="contra_confirmation" type="password" required minlength="6" maxlength="30">
|
||||
</div>
|
||||
<button class="btn btn-primary" type="submit">Guardar contraseña</button>
|
||||
</form>
|
||||
|
||||
<hr class="my-4">
|
||||
<div class="d-grid">
|
||||
<a href="/login/cliente" class="btn btn-outline-secondary">Volver al login</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,142 @@
|
||||
<!doctype html>
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Recuperar credenciales administrador</title>
|
||||
@vite(['resources/css/app.css', 'resources/js/app.js'])
|
||||
</head>
|
||||
<body class="bg-light">
|
||||
<main class="container py-5">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 col-sm-10 col-md-8 col-lg-5">
|
||||
<div class="card shadow-sm border-0">
|
||||
<div class="card-body p-4 p-md-5">
|
||||
<h1 class="h4 mb-1 text-center">Recuperar credenciales administrador</h1>
|
||||
<p class="text-muted text-center small mb-4">Completá todos los datos con los que está registrado en el sistema</p>
|
||||
|
||||
@if(session('recuperar_success'))
|
||||
<div class="alert alert-success" role="alert">
|
||||
{{ session('recuperar_success') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if(session('recuperar_error'))
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{{ session('recuperar_error') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($errors->any())
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<ul class="mb-0 ps-3">
|
||||
@foreach($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="alert alert-warning py-2" role="alert">
|
||||
<strong>Intentos restantes:</strong> {{ $intentosRestantes ?? 5 }} de {{ $intentosMaximos ?? 5 }}
|
||||
</div>
|
||||
|
||||
<form method="POST" action="/admin/recuperar-credenciales" class="d-grid gap-3">
|
||||
@csrf
|
||||
<div>
|
||||
<label class="form-label" for="celular">Número de celular</label>
|
||||
<input class="form-control" id="celular" name="celular" type="text" value="{{ old('celular') }}" required autofocus>
|
||||
</div>
|
||||
<div>
|
||||
<label class="form-label" for="nombre">Nombre</label>
|
||||
<input class="form-control" id="nombre" name="nombre" type="text" value="{{ old('nombre') }}" required>
|
||||
</div>
|
||||
<div>
|
||||
<label class="form-label" for="apellido">Apellido</label>
|
||||
<input class="form-control" id="apellido" name="apellido" type="text" value="{{ old('apellido') }}" required>
|
||||
</div>
|
||||
<div>
|
||||
<label class="form-label" for="correo">Correo electrónico</label>
|
||||
<input class="form-control" id="correo" name="correo" type="email" value="{{ old('correo') }}" required>
|
||||
</div>
|
||||
<div>
|
||||
<label class="form-label" for="pregunta_secreta">Pregunta secreta</label>
|
||||
<input class="form-control" id="pregunta_secreta" name="pregunta_secreta" type="text" value="{{ old('pregunta_secreta') }}" placeholder="Ingresá el correo para visualizar la pregunta" readonly>
|
||||
<div id="pregunta-secreta-ayuda" class="form-text">La pregunta se mostrará automáticamente según el correo ingresado.</div>
|
||||
</div>
|
||||
<div>
|
||||
<label class="form-label" for="respuesta_secreta">Respuesta secreta</label>
|
||||
<input class="form-control" id="respuesta_secreta" name="respuesta_secreta" type="text" value="{{ old('respuesta_secreta') }}" required>
|
||||
</div>
|
||||
<div style="position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;" aria-hidden="true">
|
||||
<label class="form-label" for="website">No completar este campo</label>
|
||||
<input class="form-control" id="website" name="website" type="text" value="{{ old('website') }}" tabindex="-1" autocomplete="off">
|
||||
</div>
|
||||
<button class="btn btn-primary" type="submit">Enviar enlace</button>
|
||||
</form>
|
||||
|
||||
<hr class="my-4">
|
||||
<div class="d-grid">
|
||||
<a href="/login/personal" class="btn btn-outline-secondary">Volver al login</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
const correoInput = document.getElementById('correo');
|
||||
const preguntaInput = document.getElementById('pregunta_secreta');
|
||||
const ayuda = document.getElementById('pregunta-secreta-ayuda');
|
||||
|
||||
if (!correoInput || !preguntaInput || !ayuda) {
|
||||
return;
|
||||
}
|
||||
|
||||
const limpiarPregunta = (mensaje = 'La pregunta se mostrará automáticamente según el correo ingresado.') => {
|
||||
preguntaInput.value = '';
|
||||
ayuda.textContent = mensaje;
|
||||
};
|
||||
|
||||
const cargarPregunta = async () => {
|
||||
const correo = correoInput.value.trim();
|
||||
|
||||
if (correo === '') {
|
||||
limpiarPregunta();
|
||||
return;
|
||||
}
|
||||
|
||||
ayuda.textContent = 'Buscando pregunta secreta...';
|
||||
|
||||
try {
|
||||
const response = await fetch('/admin/recuperar-credenciales/pregunta?correo=' + encodeURIComponent(correo), {
|
||||
headers: {
|
||||
'X-Requested-With': 'XMLHttpRequest'
|
||||
}
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
if (data.encontrada && data.pregunta) {
|
||||
preguntaInput.value = data.pregunta;
|
||||
ayuda.textContent = 'Respondé la pregunta secreta para continuar.';
|
||||
} else {
|
||||
limpiarPregunta('No se encontró una pregunta secreta visible para ese correo.');
|
||||
}
|
||||
} catch (error) {
|
||||
limpiarPregunta('No se pudo cargar la pregunta secreta. Intentá nuevamente.');
|
||||
}
|
||||
};
|
||||
|
||||
correoInput.addEventListener('blur', cargarPregunta);
|
||||
correoInput.addEventListener('change', cargarPregunta);
|
||||
|
||||
if (correoInput.value.trim() !== '') {
|
||||
cargarPregunta();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,84 @@
|
||||
<!doctype html>
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Recuperar credenciales personal</title>
|
||||
@vite(['resources/css/app.css', 'resources/js/app.js'])
|
||||
</head>
|
||||
<body class="bg-light">
|
||||
<main class="container py-5">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 col-sm-10 col-md-8 col-lg-5">
|
||||
<div class="card shadow-sm border-0">
|
||||
<div class="card-body p-4 p-md-5">
|
||||
<h1 class="h4 mb-1 text-center">Recuperar credenciales</h1>
|
||||
<p class="text-muted text-center small mb-4">Ingresá los datos con los que estás registrado en el sistema para recibir el enlace de recuperación.</p>
|
||||
|
||||
@if(session('recuperar_success'))
|
||||
<div class="alert alert-success" role="alert">
|
||||
{{ session('recuperar_success') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if(session('recuperar_error'))
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{{ session('recuperar_error') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($errors->any())
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<ul class="mb-0 ps-3">
|
||||
@foreach($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="alert alert-warning py-2" role="alert">
|
||||
<strong>Intentos restantes:</strong> {{ $intentosRestantes ?? 5 }} de {{ $intentosMaximos ?? 5 }}
|
||||
</div>
|
||||
|
||||
<form method="POST" action="/personal/recuperar-credenciales" class="d-grid gap-3">
|
||||
@csrf
|
||||
<div>
|
||||
<label class="form-label" for="dni">DNI</label>
|
||||
<input class="form-control" id="dni" name="dni" type="text" value="{{ old('dni') }}" required autofocus>
|
||||
</div>
|
||||
<div>
|
||||
<label class="form-label" for="matricula">Matrícula</label>
|
||||
<input class="form-control" id="matricula" name="matricula" type="text" value="{{ old('matricula') }}" required>
|
||||
</div>
|
||||
<div>
|
||||
<label class="form-label" for="profesion_id">Profesión</label>
|
||||
<select class="form-select" id="profesion_id" name="profesion_id" required>
|
||||
<option value="">Seleccionar profesión</option>
|
||||
@foreach(($profesiones ?? []) as $profesion)
|
||||
<option value="{{ $profesion->id }}" @selected((string) old('profesion_id') === (string) $profesion->id)>{{ $profesion->titulo }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label class="form-label" for="correo">Correo electrónico</label>
|
||||
<input class="form-control" id="correo" name="correo" type="email" value="{{ old('correo') }}" required>
|
||||
</div>
|
||||
<div style="position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;" aria-hidden="true">
|
||||
<label class="form-label" for="website">No completar este campo</label>
|
||||
<input class="form-control" id="website" name="website" type="text" value="{{ old('website') }}" tabindex="-1" autocomplete="off">
|
||||
</div>
|
||||
<button class="btn btn-primary" type="submit">Enviar enlace</button>
|
||||
</form>
|
||||
|
||||
<hr class="my-4">
|
||||
<div class="d-grid">
|
||||
<a href="/login/personal" class="btn btn-outline-secondary">Volver al login</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,71 @@
|
||||
<!doctype html>
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Recuperar credenciales</title>
|
||||
@vite(['resources/css/app.css', 'resources/js/app.js'])
|
||||
</head>
|
||||
<body class="bg-light">
|
||||
<main class="container py-5">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 col-sm-10 col-md-8 col-lg-5">
|
||||
<div class="card shadow-sm border-0">
|
||||
<div class="card-body p-4 p-md-5">
|
||||
<h1 class="h4 mb-1 text-center">Recuperar credenciales</h1>
|
||||
<p class="text-muted text-center small mb-4">Ingresá tu correo electrónico y te enviaremos un enlace para restablecer tu contraseña.</p>
|
||||
|
||||
@if(session('recuperar_success'))
|
||||
<div class="alert alert-success" role="alert">
|
||||
{{ session('recuperar_success') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if(session('recuperar_error'))
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{{ session('recuperar_error') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($errors->any())
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<ul class="mb-0 ps-3">
|
||||
@foreach($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="alert alert-warning py-2" role="alert">
|
||||
<strong>Intentos restantes:</strong> {{ $intentosRestantes ?? 5 }} de {{ $intentosMaximos ?? 5 }}
|
||||
</div>
|
||||
|
||||
<form method="POST" action="/cliente/recuperar-credenciales" class="d-grid gap-3">
|
||||
@csrf
|
||||
<div>
|
||||
<label class="form-label" for="correo">Correo electrónico con el que está registrado</label>
|
||||
<input class="form-control" id="correo" name="correo" type="email" value="{{ old('correo') }}" required autofocus>
|
||||
</div>
|
||||
<div style="position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;" aria-hidden="true">
|
||||
<label class="form-label" for="website">No completar este campo</label>
|
||||
<input class="form-control" id="website" name="website" type="text" value="{{ old('website') }}" tabindex="-1" autocomplete="off">
|
||||
</div>
|
||||
<button class="btn btn-primary" type="submit">Enviar enlace</button>
|
||||
</form>
|
||||
|
||||
<div class="alert alert-info mt-3 mb-0" role="alert">
|
||||
Si no recibis el correo en los proximos 5 minutos o tenes otro problema, comunicate algun profesional de Abogadas del Litoral.
|
||||
</div>
|
||||
|
||||
<hr class="my-4">
|
||||
<div class="d-grid">
|
||||
<a href="/login/cliente" class="btn btn-outline-secondary">Volver al login</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user