52 lines
2.3 KiB
HTML
52 lines
2.3 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}Reset Password - Mold Cost Calculator{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="container mt-5">
|
|
<div class="row justify-content-center">
|
|
<div class="col-md-6">
|
|
<div class="card shadow">
|
|
<div class="card-header bg-primary text-white">
|
|
<h4 class="mb-0">Reset Password</h4>
|
|
</div>
|
|
<div class="card-body">
|
|
{% with messages = get_flashed_messages(with_categories=true) %}
|
|
{% if messages %}
|
|
{% for category, message in messages %}
|
|
<div class="alert alert-{{ category }}">{{ message }}</div>
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endwith %}
|
|
<form method="POST">
|
|
{{ form.hidden_tag() }}
|
|
|
|
<div class="mb-3">
|
|
{{ form.password.label(class="form-label") }}
|
|
{{ form.password(class="form-control" + (" is-invalid" if form.password.errors else "")) }}
|
|
{% for error in form.password.errors %}
|
|
<div class="invalid-feedback">{{ error }}</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
{{ form.password_confirm.label(class="form-label") }}
|
|
{{ form.password_confirm(class="form-control" + (" is-invalid" if form.password_confirm.errors else "")) }}
|
|
{% for error in form.password_confirm.errors %}
|
|
<div class="invalid-feedback">{{ error }}</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
<div class="d-grid gap-2">
|
|
{{ form.submit(class="btn btn-primary") }}
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="card-footer text-center">
|
|
<p class="mb-0">Remember your password? <a href="{{ url_for('auth.login') }}">Login here</a></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %} |