|
|
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>THOR AI - Login</title> |
| <link href="https://cdn.replit.com/agent/bootstrap-agent-dark-theme.min.css" rel="stylesheet"> |
| </head> |
| <body> |
| <div class="container mt-5"> |
| <div class="row justify-content-center"> |
| <div class="col-md-6"> |
| |
| {% with messages = get_flashed_messages(with_categories=true) %} |
| {% if messages %} |
| {% for category, message in messages %} |
| <div class="alert alert-{{ category }} alert-dismissible fade show" role="alert"> |
| {{ message }} |
| <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> |
| </div> |
| {% endfor %} |
| {% endif %} |
| {% endwith %} |
| |
| <div class="card"> |
| <div class="card-header"> |
| <h3>THOR AI System Login</h3> |
| </div> |
| <div class="card-body"> |
| <form method="post"> |
| {{ login_form.csrf_token }} |
| <input type="hidden" name="form_type" value="login"> |
| |
| <div class="mb-3"> |
| <label for="username" class="form-label">Username</label> |
| {{ login_form.username(class="form-control", id="username") }} |
| {% for error in login_form.username.errors %} |
| <div class="text-danger">{{ error }}</div> |
| {% endfor %} |
| </div> |
| |
| <div class="mb-3"> |
| <label for="password" class="form-label">Password</label> |
| {{ login_form.password(class="form-control", id="password") }} |
| {% for error in login_form.password.errors %} |
| <div class="text-danger">{{ error }}</div> |
| {% endfor %} |
| </div> |
| |
| {{ login_form.submit(class="btn btn-primary") }} |
| </form> |
| |
| <hr> |
| |
| <h4 class="mt-4">Register New User</h4> |
| <form method="post"> |
| {{ registration_form.csrf_token }} |
| <input type="hidden" name="form_type" value="register"> |
| |
| <div class="mb-3"> |
| <label for="reg_username" class="form-label">Username</label> |
| {{ registration_form.username(class="form-control", id="reg_username") }} |
| {% for error in registration_form.username.errors %} |
| <div class="text-danger">{{ error }}</div> |
| {% endfor %} |
| </div> |
| |
| <div class="mb-3"> |
| <label for="reg_email" class="form-label">Email</label> |
| {{ registration_form.email(class="form-control", id="reg_email") }} |
| {% for error in registration_form.email.errors %} |
| <div class="text-danger">{{ error }}</div> |
| {% endfor %} |
| </div> |
| |
| <div class="mb-3"> |
| <label for="reg_password" class="form-label">Password</label> |
| {{ registration_form.password(class="form-control", id="reg_password") }} |
| {% for error in registration_form.password.errors %} |
| <div class="text-danger">{{ error }}</div> |
| {% endfor %} |
| </div> |
| |
| {{ registration_form.submit(class="btn btn-success") }} |
| </form> |
| </div> |
| </div> |
| |
| <div class="text-center mt-3"> |
| <a href="{{ url_for('index') }}" class="btn btn-secondary">Back to Home</a> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| |
| <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> |
| </body> |
| </html> |
|
|