obdev/app/views/admin/new_user.html.erb

53 lines
1.9 KiB
Plaintext
Raw Normal View History

<div class="container mt-5">
<div class="row justify-content-center">
<div class="col-md-6">
<h2 class="mb-3 text-center">Create New User</h2>
<%= form_for(@user, url: admin_users_path, html: { class: 'needs-validation', novalidate: true }) do |f| %>
<div class="mb-3">
<%= f.label :email, class: 'form-label' %>
<%= f.email_field :email, class: 'form-control', placeholder: 'Enter email', required: true %>
</div>
<div class="mb-3">
<%= f.label :password, class: 'form-label' %>
<%= f.password_field :password, class: 'form-control', placeholder: 'Password', required: true %>
</div>
<div class="mb-3">
<%= f.label :password_confirmation, "Confirm Password", class: 'form-label' %>
<%= f.password_field :password_confirmation, class: 'form-control', placeholder: 'Confirm Password', required: true %>
</div>
<div class="actions text-center">
<%= f.submit "Create User", class: 'btn btn-dark' %>
</div>
<% end %>
</div>
</div>
</div>
<%# This is to indicate to the User if the passwords didn't match %>
<script>
document.addEventListener("DOMContentLoaded", function() {
const password = document.querySelector('#user_password');
const confirmPassword = document.querySelector('#user_password_confirmation');
const messageContainer = document.createElement('div');
messageContainer.style.color = 'red';
// Append the messageContainer below the confirmPassword field
confirmPassword.parentNode.insertBefore(messageContainer, confirmPassword.nextSibling);
function validatePassword(){
if(password.value !== confirmPassword.value) {
messageContainer.textContent = "Passwords need to match!";
} else {
messageContainer.textContent = "";
}
}
password.onchange = validatePassword;
confirmPassword.onkeyup = validatePassword;
});
</script>