kaauh_ats/templates/account/password_reset_from_key.html

237 lines
10 KiB
HTML

{% load static i18n %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% trans "Set New Password" %} - KAAUH ATS</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
{% get_current_language as LANGUAGE_CODE %}
<style>
/* -------------------------------------------------------------------------- */
/* CUSTOM TEAL THEME OVERRIDES FOR BOOTSTRAP (Copied from provided login page) */
/* -------------------------------------------------------------------------- */
:root {
/* Define TEAL as the primary color for Bootstrap overrides */
--bs-primary: #00636e; /* Dark Teal */
--bs-primary-rgb: 0, 99, 110;
--bs-primary-light: #007a88; /* Lighter Teal for hover */
/* Background and Text Colors */
--bs-body-bg: #f8f9fa; /* Light gray background */
--bs-body-color: #212529; /* Dark text */
/* Utility colors */
--bs-border-color: #dee2e6; /* Bootstrap default border */
}
body {
font-family: 'Inter', sans-serif;
background-color: var(--bs-body-bg);
}
/* Custom Left Panel (Replicating the original look) */
.left-panel {
flex: 1;
/* NOTE: Static image URL is included here. Ensure 'image/kaauh_banner.png' exists in your static files. */
background: url("{% static 'image/kaauh_banner.png' %}") no-repeat center center;
background-size: cover;
position: relative;
display: flex;
align-items: flex-end;
padding: 3rem;
color: white;
z-index: 1;
}
.left-panel::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 50%);
z-index: 0;
}
.left-panel-content {
position: relative;
z-index: 2;
}
/* Right Panel Styling */
.right-panel {
background-color: white;
padding: 3rem;
}
.form-fields {
max-height: 100%;
overflow-y: auto;
}
/* Component Overrides to use Teal Theme */
.btn-primary {
background-color: var(--bs-primary);
border-color: var(--bs-primary);
font-weight: 600;
border-radius: 0.5rem;
box-shadow: 0 4px 8px rgba(0, 99, 110, 0.2);
transition: all 0.2s ease;
}
.btn-primary:hover {
background-color: var(--bs-primary-light);
border-color: var(--bs-primary-light);
box-shadow: 0 6px 10px rgba(0, 99, 110, 0.3);
}
.form-control:focus {
border-color: var(--bs-primary);
box-shadow: 0 0 0 0.25rem rgba(0, 99, 110, 0.25);
}
.text-accent {
color: var(--bs-primary) !important;
}
.text-accent:hover {
color: var(--bs-primary-light) !important;
text-decoration: underline;
}
.alert-info-custom {
background-color: #f0f8ff; /* Very light blue */
border-left: 5px solid var(--bs-primary);
color: var(--bs-primary);
}
/* ADJUSTED: Custom size adjustment for right panel on desktop */
@media (min-width: 992px) {
/* 1. Set a NARROWER fixed width for the right panel container */
.right-panel-col {
flex: 0 0 450px; /* Width of the panel */
}
/* 2. Vertically and horizontally center the content within the narrow panel */
.right-panel-col > .d-flex {
height: 100%;
justify-content: center;
align-items: center;
padding-top: 0;
padding-bottom: 0;
}
/* 3. Ensure the form container doesn't exceed a smaller size and is centered */
.right-panel-content-wrapper {
max-width: 350px; /* Max width of the form elements inside the panel */
width: 100%;
}
}
</style>
</head>
<body>
<div class="d-flex vh-100 w-100">
<div class="left-panel d-none d-lg-flex flex-grow-1">
<div class="left-panel-content">
<h1 class="text-4xl font-weight-bold mb-4" style="font-size: 1.5rem;">
<span class="text-white">
<div class="hospital-text text-center text-md-start me-3">
<div class="ar small">{% trans "جامعة الأميرة نورة بنت عبدالرحمن الأكاديمية" %}</div>
<div class="ar small">{% trans "ومستشفى الملك عبدالله بن عبدالعزيز التخصصي" %}</div>
<div class="en small">{% trans "Princess Nourah bint Abdulrahman University" %}</div>
<div class="en small">{% trans "King Abdullah bin Abdulaziz University Hospital" %}</div>
</div>
</span>
</h1>
<small>Powered By TENHAL | تنحل</small>
</div>
</div>
<div class="d-flex flex-column right-panel right-panel-col flex-grow-1 align-items-center justify-content-center">
<div class="right-panel-content-wrapper">
<h2 id="form-title" class="h3 fw-bold mb-4 text-center text-accent">{% trans "Set New Password" %}</h2>
<div class="form-fields">
{% if form %}
<p class="text-muted small mb-4 text-center">
{% trans 'Please enter your new password below. You can then log in.' %}
</p>
<form method="post" action="{{ action_url }}">
{% csrf_token %}
{# Display any general form errors #}
{% if form.non_field_errors %}
<div class="alert alert-danger" role="alert">
{% for error in form.non_field_errors %}
{{ error }}
{% endfor %}
</div>
{% endif %}
{# Password 1 Field #}
<div class="mb-3">
<label for="{{ form.password.id_for_label }}" class="form-label fw-semibold">{% trans "New Password" %} *</label>
{% if form.password.errors %}
<div class="alert alert-danger p-2 small">
{{ form.password.errors }}
</div>
{% endif %}
<input type="password" name="{{ form.password.name }}" id="{{ form.password.id_for_label }}"
class="form-control" placeholder="{% trans 'Enter new password' %}" required autofocus>
</div>
{# Password 2 Field #}
<div class="mb-3">
<label for="{{ form.password2.id_for_label }}" class="form-label fw-semibold">{% trans "Confirm New Password" %} *</label>
{% if form.password2.errors %}
<div class="alert alert-danger p-2 small">
{{ form.password2.errors }}
</div>
{% endif %}
<input type="password" name="{{ form.password2.name }}" id="{{ form.password2.id_for_label }}"
class="form-control" placeholder="{% trans 'Confirm new password' %}" required>
</div>
{# Hidden fields, if any (like uidb64, token/key) #}
{{ form.uid }}
{{ form.token }}
{# Submit Button #}
<button type="submit" name="action" class="btn btn-primary w-100 mt-4">
{% trans "Change Password" %}
</button>
</form>
{% else %}
{# Message when the reset key is invalid or expired #}
<h4 class="text-danger text-center mb-3">{% trans "Password Reset Failed" %}</h4>
<p class="text-muted text-center mb-4">
{% trans "The password reset link is invalid or has expired." %}
</p>
<div class="d-grid mt-4">
<a href="{% url 'account_reset_password' %}" class="btn btn-primary">
<i class="fas fa-redo me-2"></i> {% trans "Request New Reset Link" %}
</a>
</div>
{% endif %}
<div class="text-center mt-3">
<a href="{% url 'account_login' %}" class="small text-accent fw-medium">
<i class="fas fa-sign-in-alt me-1"></i> {% trans "Return to Sign In" %}
</a>
</div>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js" crossorigin="anonymous"></script>
</body>
</html>