Spaces:
Runtime error
Runtime error
Update app/templates/resend_verification.html
Browse files
app/templates/resend_verification.html
CHANGED
|
@@ -1,12 +1,94 @@
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
-
{% block title %}Resend Verification{% endblock %}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
{% block content %}
|
| 4 |
-
<
|
| 5 |
-
<
|
| 6 |
-
<
|
| 7 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
</div>
|
| 9 |
-
|
| 10 |
-
</form>
|
| 11 |
-
<p class="mt-3"><a href="{{ url_for('auth.login') }}">Back to login</a></p>
|
| 12 |
{% endblock %}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
{% extends "base.html" %}
|
| 2 |
+
{% block title %}Resend Verification β Resume Ranker API{% endblock %}
|
| 3 |
+
|
| 4 |
+
{% block extra_head %}
|
| 5 |
+
{#
|
| 6 |
+
No extra head elements are needed here if base.html is correctly
|
| 7 |
+
linking to Google Fonts and your main CSS file (login.css/styles.css).
|
| 8 |
+
#}
|
| 9 |
+
{% endblock %}
|
| 10 |
+
|
| 11 |
{% block content %}
|
| 12 |
+
<header class="container sticky-header">
|
| 13 |
+
<div class="logo">ResumeRanker<span style="color:var(--accent)">.API</span></div>
|
| 14 |
+
<nav class="nav-links" id="navLinks">
|
| 15 |
+
<a href="{{ url_for('auth.landing') }}">Home</a>
|
| 16 |
+
<a href="{{ url_for('auth.landing') }}#how">How it works</a>
|
| 17 |
+
<a href="{{ url_for('auth.landing') }}#demo">Live Demo</a>
|
| 18 |
+
<a href="{{ url_for('auth.landing') }}#docs">Docs</a>
|
| 19 |
+
<a href="{{ url_for('auth.landing') }}#pricing">Pricing</a>
|
| 20 |
+
</nav>
|
| 21 |
+
<button class="theme-toggle" id="themeToggle" aria-label="Toggle dark mode">π</button>
|
| 22 |
+
<button class="hamburger" id="hamburger" aria-label="Open menu">
|
| 23 |
+
<span></span><span></span><span></span>
|
| 24 |
+
</button>
|
| 25 |
+
</header>
|
| 26 |
+
|
| 27 |
+
<main class="login-container"> {# Reusing .login-container for consistent layout #}
|
| 28 |
+
<div class="login-card"> {# Reusing .login-card for consistent card styling #}
|
| 29 |
+
<div class="login-header">
|
| 30 |
+
<h1 class="login-title">Resend Verification Email</h1>
|
| 31 |
+
<p class="login-subtitle">Enter your email to resend the verification link.</p>
|
| 32 |
+
</div>
|
| 33 |
+
|
| 34 |
+
{% if error %}
|
| 35 |
+
<div class="error-message">{{ error }}</div>
|
| 36 |
+
{% endif %}
|
| 37 |
+
|
| 38 |
+
{% if success %}
|
| 39 |
+
<div class="success-message">{{ success }}</div>
|
| 40 |
+
{% endif %}
|
| 41 |
+
|
| 42 |
+
<form method="POST">
|
| 43 |
+
<div class="form-group"> {# Reusing .form-group and .form-input #}
|
| 44 |
+
<label for="email" class="form-label">Email address</label>
|
| 45 |
+
<input type="email" id="email" name="email" class="form-input" placeholder="Enter your email" required>
|
| 46 |
+
</div>
|
| 47 |
+
|
| 48 |
+
<button type="submit" class="login-btn">Resend Email</button> {# Reusing .login-btn #}
|
| 49 |
+
</form>
|
| 50 |
+
|
| 51 |
+
<div class="signup-link"> {# Reusing .signup-link for the bottom text style #}
|
| 52 |
+
<p>Remembered your password? <a href="{{ url_for('auth.login') }}">Back to sign in</a></p>
|
| 53 |
+
</div>
|
| 54 |
</div>
|
| 55 |
+
</main>
|
|
|
|
|
|
|
| 56 |
{% endblock %}
|
| 57 |
+
|
| 58 |
+
{% block extra_scripts %}
|
| 59 |
+
{# The JavaScript for theme toggle and hamburger menu from login.html #}
|
| 60 |
+
<script>
|
| 61 |
+
// Light/Dark mode toggle
|
| 62 |
+
const themeToggle = document.getElementById('themeToggle');
|
| 63 |
+
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
| 64 |
+
function setTheme(theme) {
|
| 65 |
+
document.documentElement.setAttribute('data-theme', theme);
|
| 66 |
+
localStorage.setItem('theme', theme);
|
| 67 |
+
themeToggle.textContent = theme === 'dark' ? 'βοΈ' : 'π';
|
| 68 |
+
}
|
| 69 |
+
const savedTheme = localStorage.getItem('theme');
|
| 70 |
+
setTheme(savedTheme || (prefersDark ? 'dark' : 'light'));
|
| 71 |
+
themeToggle.onclick = () => {
|
| 72 |
+
const current = document.documentElement.getAttribute('data-theme');
|
| 73 |
+
setTheme(current === 'dark' ? 'light' : 'dark');
|
| 74 |
+
};
|
| 75 |
+
|
| 76 |
+
// Hamburger menu toggle
|
| 77 |
+
const hamburger = document.getElementById('hamburger');
|
| 78 |
+
const navLinks = document.getElementById('navLinks');
|
| 79 |
+
hamburger.onclick = function() {
|
| 80 |
+
navLinks.classList.toggle('open');
|
| 81 |
+
hamburger.classList.toggle('open');
|
| 82 |
+
};
|
| 83 |
+
|
| 84 |
+
// Close menu when clicking a link (on mobile)
|
| 85 |
+
Array.from(navLinks.getElementsByTagName('a')).forEach(link => {
|
| 86 |
+
link.onclick = () => {
|
| 87 |
+
if (window.innerWidth <= 900) {
|
| 88 |
+
navLinks.classList.remove('open');
|
| 89 |
+
hamburger.classList.remove('open');
|
| 90 |
+
}
|
| 91 |
+
};
|
| 92 |
+
});
|
| 93 |
+
</script>
|
| 94 |
+
{% endblock %}
|