| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Joblin - Sign In</title> |
| <link rel="stylesheet" href="styles.css"> |
| </head> |
| <body> |
| <div class="auth-page"> |
| <div class="auth-card"> |
| <a href="index.html" class="auth-brand"> |
| <div class="auth-brand-icon">J</div> |
| <h1>Job<span>lin</span></h1> |
| </a> |
| <p class="subtitle">AI-powered CV & job matching platform</p> |
| <form id="loginForm"> |
| <div class="form-group"> |
| <label>Email</label> |
| <input type="email" id="email" placeholder="you@example.com" required autocomplete="email"> |
| </div> |
| <div class="form-group"> |
| <label>Password</label> |
| <div class="pwd-wrapper"> |
| <input type="password" id="password" placeholder="Enter your password" required autocomplete="current-password"> |
| <span class="pwd-toggle" onclick="togglePwd('password',this)">👁</span> |
| </div> |
| </div> |
| <button type="submit" class="btn btn-primary btn-lg" style="width:100%" id="loginBtn">Sign In</button> |
| </form> |
| <p class="footer-link" style="margin-bottom:var(--space-2)"><a href="forgot-password.html">Forgot password?</a></p> |
| <p class="footer-link">Don't have an account? <a href="register.html">Create one</a></p> |
| </div> |
| </div> |
| <script src="app.js"></script> |
| <script> |
| const btn = document.getElementById("loginBtn"); |
| document.getElementById("loginForm").addEventListener("submit", async (e) => { |
| e.preventDefault(); |
| btn.disabled = true; |
| btn.innerHTML = '<span class="spinner"></span> Signing in...'; |
| try { |
| const data = await apiFetch("POST", "/api/auth/login", { |
| email: document.getElementById("email").value, |
| password: document.getElementById("password").value, |
| }); |
| localStorage.setItem("joblin_token", data.token); |
| setCurrentUser(data.user); |
| window.location.href = "dashboard.html"; |
| } catch (err) { |
| showToast(err.message, "error"); |
| btn.disabled = false; |
| btn.textContent = "Sign In"; |
| } |
| }); |
| if (getToken()) window.location.href = "dashboard.html"; |
| </script> |
| </body> |
| </html> |
|
|