gitcoinco/code_fund_ads

View on GitHub
app/views/organization_users/forms/_existing_user_form.html.erb

Summary

Maintainability
Test Coverage
<%= simple_form_for organization_user, wrapper: :front_form do |f| %>
  <%= render(Card::BodyComponent.new) do %>
    <div class="row" data-controller="organization-users-search" data-reflex-root="#morph">
      <%= f.hidden_field :organization_id, value: organization.id %>
      <% if organization_user.user %>
        <%= f.hidden_field :user_id, value: organization_user.user.id %>
      <% else %>
        <div class="col-md-6 mb-3 mb-md-0">
          <label class="form-label string required" for="organization-user-email">Email <abbr title="required">*</abbr></label>
          <input id="organization-user-email" type="text" placeholder="Search for a user by email..." class="form-control"
                data-target="organization-users-search.query" data-action="input->organization-users-search#perform" />
            <div id="morph" class="">
              <small data-target="organization-users-search.activity" class="text-danger" hidden>
                <i class="fas fa-spinner fa-spin"></i>
                Searching for user...
              </small>
              <% if session[:organization_user_search_result] %>
                <small data-target="organization-users-search.found" class="text-success">
                  <strong><%= session[:organization_user_search_result]&.email %></strong> found.</small>
                  <%= f.hidden_field :user_id, value: session[:organization_user_search_result]&.id %>
              <% else %>
                <small data-target="organization-users-search.found" class="text-danger">
                  No users matching that email.
                </small>
              <% end %>
            </div>
          </div>
        <% end %>
      <div class="col-md-6 mb-3">
        <%= f.input :role, label: "Role", required: true,
              collection: ENUMS::ORGANIZATION_ROLES.values.map { |role| [role.capitalize, role] },
              input_html: {class: "form-control", data: {controller: "select"}} %>
      </div>
    </div>
  <% end %>
  <%= render Card::FooterComponent.new do |component| %>
    <% component.with(:actions) do %>
      <%= cancel_button(organization_users_path(organization)) %>
      <%= f.submit "Save Membership", class: "btn btn-primary" %>
    <% end %>
  <% end %>
<% end %>