88 lines
3.0 KiB
Plaintext
88 lines
3.0 KiB
Plaintext
<%= form_with(model: user, local: true, html: { class: 'needs-validation', novalidate: true }) do |form| %>
|
|
|
|
<%# Display validation errors, if any %>
|
|
<% if user.errors.any? %>
|
|
<%# Error messages display block %>
|
|
<% end %>
|
|
|
|
<%# User attributes fields %>
|
|
<%# First Name %>
|
|
<div class="mb-3">
|
|
<%= form.label :first_name, class: 'form-label' %>
|
|
<%= form.text_field :first_name, id: :user_first_name, class: 'form-control' %>
|
|
</div>
|
|
|
|
<%# Last Name %>
|
|
<div class="mb-3">
|
|
<%= form.label :last_name, class: 'form-label' %>
|
|
<%= form.text_field :last_name, id: :user_last_name, class: 'form-control' %>
|
|
</div>
|
|
|
|
<%# Email field %>
|
|
<div class="mb-3">
|
|
<%= form.label :email, class: 'form-label' %>
|
|
<%= form.email_field :email, id: :user_email, class: 'form-control' %>
|
|
</div>
|
|
|
|
<%# Phone Number %>
|
|
<div class="mb-3">
|
|
<%= form.label :phone, class: 'form-label' %>
|
|
<%= form.telephone_field :phone, id: :user_phone, class: 'form-control' %>
|
|
</div>
|
|
|
|
<%# Company %>
|
|
<div class="mb-3">
|
|
<%= form.label :company, class: 'form-label' %>
|
|
<%= form.text_field :company, id: :user_company, class: 'form-control' %>
|
|
</div>
|
|
|
|
<%# Assuming roles are assigned via checkboxes or a select dropdown %>
|
|
<div class="mb-3">
|
|
<%= form.label :roles, 'Assign Role(s)', class: 'form-label' %>
|
|
<%# Adjust this to your roles setup %>
|
|
<%= form.collection_select :roles, Role.all, :name, :name, {}, { multiple: true, class: 'form-select' } %>
|
|
</div>
|
|
|
|
<%# Access control fields %>
|
|
<div class="mb-3">
|
|
<%= form.check_box :access_revoked, class: 'form-check-input' %>
|
|
<%= form.label :access_revoked, 'Access Revoked', class: 'form-check-label' %>
|
|
</div>
|
|
|
|
<%# Date fields for access control %>
|
|
<div class="mb-3">
|
|
<%= form.label :access_start_date, 'Access Start Date', class: 'form-label' %>
|
|
<%= form.date_field :access_start_date, class: 'form-control' %>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<%= form.label :access_end_date, 'Access End Date', class: 'form-label' %>
|
|
<%= form.date_field :access_end_date, class: 'form-control' %>
|
|
</div>
|
|
|
|
<%# Submit button %>
|
|
<div class="actions">
|
|
<%= form.submit 'Save', class: 'btn btn-dark' %>
|
|
</div>
|
|
|
|
<% end %>
|
|
|
|
|
|
<%# This ensures that the access end date is greyed out if user access has not been revoked %>
|
|
<script>
|
|
document.addEventListener("DOMContentLoaded", function() {
|
|
const accessRevokedCheckbox = document.querySelector('#user_access_revoked'); // Make sure the ID matches your form field's ID
|
|
const accessEndDateField = document.querySelector('#user_access_end_date'); // Same here, use the actual ID
|
|
|
|
function toggleEndDateField() {
|
|
accessEndDateField.disabled = !accessRevokedCheckbox.checked;
|
|
if (!accessRevokedCheckbox.checked) {
|
|
accessEndDateField.value = ''; // Clear the date if access is not revoked
|
|
}
|
|
}
|
|
|
|
accessRevokedCheckbox.addEventListener('change', toggleEndDateField);
|
|
toggleEndDateField(); // Call on load to set initial state
|
|
});
|
|
</script>
|