| {% extends '../base.html' %} |
| {% load static %} |
| {% block title %} |
| Forgot Password |
| {% endblock %} |
|
|
| {% block style %} |
| <style> |
| * { |
| margin: 0%; |
| padding: 0%; |
| box-sizing: border-box; |
| } |
| body { |
| background-color: #131518; |
| font-family: century gothic; |
| } |
| |
| .container { |
| max-width: 500px; |
| margin: auto; |
| padding: 30px; |
| position: relative; |
| top: 30px; |
| background-color: #282a2d; |
| border: 2px solid rgb(255, 132, 0); |
| text-align: center; |
| border-radius: 8px; |
| box-shadow: 4px 4px 10px -4px #9339f5; |
| } |
| @media screen and (max-width: 550px) { |
| .container { |
| top: 30px; |
| max-width: 550px; |
| |
| } |
| } |
| |
| #title { |
| color: #fff; |
| font-size: 32px; |
| margin-top: 40px; |
| margin-bottom: 40px; |
| } |
| |
| form { |
| width: 80%; |
| margin: 0px auto; |
| } |
| |
| #login-fields { |
| width: 100%; |
| } |
| |
| #login-fields input { |
| margin-bottom: 20px; |
| padding: 15px 15px; |
| width: 100%; |
| color: #fff; |
| font-size: 16px; |
| background: #131518; |
| border-radius: 8px; |
| outline: none; |
| border: none; |
| } |
| ::placeholder { |
| color: #7a7a7a; |
| opacity: 1; |
| } |
| |
| #password-relative { |
| display: flex; |
| align-items: center; |
| text-align: center; |
| justify-content: center; |
| margin-bottom: 20px; |
| text-align: left; |
| } |
| |
| #password-relative a { |
| transition-duration: 0.2s; |
| color: #9339f5; |
| text-decoration: none; |
| font-size: 20px; |
| font-weight: 400; |
| outline: none; |
| } |
| |
| #password-relative a:hover, |
| #password-relative a:focus { |
| transition-duration: 0.2s; |
| color: #a57df5; |
| } |
| |
| button { |
| margin-bottom: 6px; |
| width: 50%; |
| color: #fff; |
| font-size: 20px; |
| background: #9339f5; |
| border: none; |
| border-radius: 8px; |
| outline: none; |
| cursor: pointer; |
| padding: 13px 0px; |
| } |
| |
| button:hover { |
| transition-duration: 0.2s; |
| background: #6421eb; |
| } |
| .message { |
| width: 80%; |
| margin: 0px auto; |
| color: #f53939; |
| font-size: 18px; |
| } |
| |
| .message:hover { |
| transition-duration: 0.2s; |
| color: #f57d7d; |
| } |
| div.mess h1 { |
| font-weight: 500; |
| line-height: 1.2; |
| color: #dc3545; |
| font-size: 36px; |
| margin-bottom: 20px; |
| } |
| |
| div.mess p { |
| color: aliceblue; |
| font-size: 18px; |
| margin-bottom: 30px; |
| } |
| @media screen and (max-width: 550px) { |
| form { |
| width: 90%; |
| } |
| } |
| </style> |
| {% endblock %} |
|
|
|
|
| {% block content %} |
|
|
| <div class="container"> |
| <div id="header"> |
| <div id="title">Forgot Password</div> |
| </div> |
| <form method="post" onsubmit="return handleLogin(event)"> |
| {% csrf_token %} |
| <div id="login-fields"> |
| <input type="email" name="email" autocomplete="email" maxlength="254" required="" id="id_email" placeholder="Enter email" /> |
| </div> |
| <button type="submit" id="reset-btn"> |
| <span id="btn-text">Submit</span> |
| <span id="loader" class="hidden"></span> |
| </button> |
| </form> |
| <br> |
| {% if form.errors %} |
| {% for field, errors in form.errors.items %} |
| {% for error in errors %} |
| <p class="message">{{ error }}</p> |
| {% endfor %} |
| {% endfor %} |
| {% endif %} |
| </div> |
| <script> |
| document.getElementById('emailForm').addEventListener('submit', function () { |
| document.getElementById('reset').disabled = true |
| }) |
| if (window.history.replaceState) { |
| window.history.replaceState(null, null, window.location.href) |
| } |
| |
| function handleLogin(event) { |
| const resetButton = document.getElementById('reset-btn') |
| const btnText = document.getElementById('btn-text') |
| const loader = document.getElementById('loader') |
| |
| |
| resetButton.disabled = true |
| btnText.style.display = 'none' |
| loader.classList.remove('hidden') |
| loader.innerHTML = '<div class="spinner"></div>' |
| |
| |
| return true |
| } |
| window.addEventListener('pageshow', () => { |
| const resetButton = document.getElementById('reset-btn') |
| const btnText = document.getElementById('btn-text') |
| const loader = document.getElementById('loader') |
| |
| |
| resetButton.disabled = false |
| btnText.style.display = 'inline' |
| loader.classList.add('hidden') |
| }) |
| </script> |
| {% endblock %} |