Files
Autoparts-DB/dashboard/login.html
consultoria-as 565f11aca6 feat: add login/register page with JWT auth flow
Login form with role-based redirect (ADMIN→demo, BODEGA→bodega, TALLER→demo).
Register form for TALLER/BODEGA with admin approval required.
Includes authFetch() wrapper with automatic token refresh.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 22:24:51 +00:00

109 lines
5.3 KiB
HTML

<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nexus Autoparts - Iniciar Sesion</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Orbitron:wght@400;500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/shared.css">
<link rel="stylesheet" href="/login.css">
</head>
<body class="login-page">
<div class="login-card">
<!-- Brand -->
<div class="login-brand">
<div class="logo-icon">&#9881;</div>
<h1>NEXUS <span>AUTOPARTS</span></h1>
<p class="slogan">Tu conexion directa con las partes que necesitas</p>
</div>
<!-- Alert (shared between forms) -->
<div id="alert" class="login-alert" role="alert"></div>
<!-- LOGIN FORM -->
<div id="loginPanel" class="form-panel active">
<h2 class="form-title">Iniciar Sesion</h2>
<form id="loginForm" autocomplete="on">
<div class="form-group">
<label class="form-label" for="loginEmail">Correo electronico</label>
<input class="form-input" type="email" id="loginEmail" name="email"
placeholder="tu@correo.com" required autocomplete="email">
</div>
<div class="form-group">
<label class="form-label" for="loginPassword">Contrasena</label>
<input class="form-input" type="password" id="loginPassword" name="password"
placeholder="Tu contrasena" required autocomplete="current-password">
</div>
<button type="submit" class="btn btn-primary btn-submit">
<span class="spinner"></span>
<span class="btn-label">Iniciar Sesion</span>
</button>
</form>
<p class="toggle-link">
¿No tienes cuenta? <a onclick="showPanel('register')">Registrate</a>
</p>
</div>
<!-- REGISTER FORM -->
<div id="registerPanel" class="form-panel">
<h2 class="form-title">Crear Cuenta</h2>
<form id="registerForm" autocomplete="on">
<div class="form-group">
<label class="form-label" for="regName">Nombre completo</label>
<input class="form-input" type="text" id="regName" name="name"
placeholder="Juan Perez" required autocomplete="name">
</div>
<div class="form-group">
<label class="form-label" for="regEmail">Correo electronico</label>
<input class="form-input" type="email" id="regEmail" name="email"
placeholder="tu@correo.com" required autocomplete="email">
</div>
<div class="form-row">
<div class="form-group">
<label class="form-label" for="regPassword">Contrasena</label>
<input class="form-input" type="password" id="regPassword" name="password"
placeholder="Min. 8 caracteres" required minlength="8"
autocomplete="new-password">
</div>
<div class="form-group">
<label class="form-label" for="regConfirm">Confirmar contrasena</label>
<input class="form-input" type="password" id="regConfirm" name="confirm"
placeholder="Repetir contrasena" required minlength="8"
autocomplete="new-password">
</div>
</div>
<div class="form-group">
<label class="form-label" for="regBusiness">Nombre del negocio</label>
<input class="form-input" type="text" id="regBusiness" name="business_name"
placeholder="Taller / Refaccionaria" required autocomplete="organization">
</div>
<div class="form-row">
<div class="form-group">
<label class="form-label" for="regPhone">Telefono</label>
<input class="form-input" type="tel" id="regPhone" name="phone"
placeholder="(555) 123-4567" required autocomplete="tel">
</div>
<div class="form-group">
<label class="form-label" for="regRole">Tipo de cuenta</label>
<select class="form-select" id="regRole" name="role" required>
<option value="TALLER">Taller</option>
<option value="BODEGA">Bodega</option>
</select>
</div>
</div>
<button type="submit" class="btn btn-primary btn-submit">
<span class="spinner"></span>
<span class="btn-label">Crear Cuenta</span>
</button>
</form>
<p class="toggle-link">
¿Ya tienes cuenta? <a onclick="showPanel('login')">Inicia Sesion</a>
</p>
</div>
</div>
<script src="/login.js"></script>
</body>
</html>