speakmore-2.0/templates/change_password.html

71 lines
3.4 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Change Password</title>
{% include 'head.html' %}
</head>
<body class="login-body">
<div class="login-div !h-[400px]">
<form class="login-form" id="change-password-form" method="POST" action="{{ url_for('change_password') }}">
<img class="login-img" src="{{ url_for('static', filename='images/ms-style-logo.svg') }}" alt="Image">
<h2 class="login-h2">Change Password</h2>
<div class="login-input-div-first">
<input class="login-input" type="text" class="form-control" id="username" name="username" placeholder="Username" required autocomplete="off">
</div>
<div class="login-input-div-rest">
<input class="login-input" type="password" class="form-control" id="current_password" name="current_password" placeholder="Current Password" required autocomplete="off">
</div>
<div class="login-input-div-rest">
<input class="login-input" type="password" class="form-control" id="new_password" name="new_password" placeholder="New Password" required autocomplete="off">
</div>
<div class="login-input-div-rest">
<input class="login-input" type="password" class="form-control" id="confirm_password" name="confirm_password" placeholder="Confirm New Password" required autocomplete="off">
</div>
<div class="login-input-div-first !flex-row">
<a class="no-account no-account-button" href="{{ url_for('login') }}"> Go Back</a>
</div>
<div class="login-input-div-first items-end">
<button class="ms-button-signin" type="submit" class="btn btn-primary">Change Password</button>
</div>
</form>
<div id="message" class="mt-3"></div>
</div>
<script>
document.querySelector('#change-password-form').addEventListener('submit', function(event) {
event.preventDefault();
const formData = new FormData(this);
const newPassword = formData.get('new_password');
const confirmPassword = formData.get('confirm_password');
const messageDiv = document.getElementById('message');
if (newPassword !== confirmPassword) {
messageDiv.innerHTML = '<div class="alert alert-danger">New passwords do not match. Please try again.</div>';
return;
}
fetch(this.action, {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
if (data.status === 'Password changed successfully') {
messageDiv.innerHTML = '<div class="alert alert-success">' + data.status + '</div>';
setTimeout(() => {
window.location.href = '{{ url_for('login') }}';
}, 1);
} else {
messageDiv.innerHTML = '<div class="alert alert-danger">' + data.message + '</div>';
}
})
.catch(error => {
console.error('Error:', error);
messageDiv.innerHTML = '<div class="alert alert-danger">An error occurred. Please try again.</div>';
});
});
</script>
</body>
</html>