docbrown/app/views/admin/users/_menu.html.erb
Andy Zhao 33e9bac0f7
Filter admin users by status (#16238)
* Use correct table heading for username

* WIP add role filter and crayonsify forms

* styling

* responsive

* Add form back in that was removed by merge conflict fix

* Suggest only valid search options

* Add basic tests for search and filter by role

* Add aria for search field

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Add email to aria

Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>

Co-authored-by: Paweł Ludwiczak <ludwiczakpawel@gmail.com>
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
Co-authored-by: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com>
2022-03-02 11:13:59 -05:00

36 lines
2.3 KiB
Text

<nav aria-label="People" class="mb-2 flex justify-between gap-4">
<ul class="crayons-navigation crayons-navigation--horizontal">
<li>
<%= link_to "People", admin_users_path, class: "crayons-navigation__item #{'crayons-navigation__item--current' if params[:controller] == 'admin/users'}", "aria-current": ("page" if params[:controller] == "admin/users") %>
</li>
<li>
<%= link_to "Invitations", admin_invitations_path, class: "crayons-navigation__item #{'crayons-navigation__item--current' if params[:controller] == 'admin/invitations'}", "aria-current": ("page" if params[:controller] == "admin/invitations") %>
</li>
<li>
<%= link_to admin_users_gdpr_delete_requests_path, class: "crayons-navigation__item #{'crayons-navigation__item--current' if params[:controller] == 'admin/users/gdpr_delete_requests'}", "aria-current": ("page" if params[:controller] == "admin/users/gdpr_delete_requests") do %>
GDPR Delete Requests
<% if Users::GdprDeleteRequest.any? %>
&nbsp;<span class="c-indicator c-indicator--danger"><%= Users::GdprDeleteRequest.count %></span>
<% end %>
<% end %>
</li>
</ul>
<% if params[:controller] == "admin/invitations" %>
<%= link_to "New", new_admin_invitation_path, class: "c-cta" %>
<% end %>
</nav>
<% if params[:controller] == "admin/users" %>
<%= form_with url: admin_users_path, method: :get, local: true, class: "flex flex-col m:flex-row gap-3 m:items-center crayons-card crayons-card--secondary p-3" do |f| %>
<div class="crayons-field flex-1 flex-row items-center gap-2">
<%= f.label :search, class: "crayons-field__label whitespace-nowrap" %>
<%= f.text_field :search, value: params[:search], class: "crayons-textfield mt-0", placeholder: "Name, username, email, or Twitter/GitHub usernames", aria: { label: "Filter by name, username, email, or Twitter/GitHub usernames" } %>
</div>
<div class="crayons-field flex-row items-center gap-2">
<%= f.label :role, "Filter by Role", class: "crayons-field__label whitespace-nowrap" %>
<%= f.select :role, options_for_select(Role::ROLES, params[:role]), { include_blank: true }, class: "crayons-select mt-0" %>
</div>
<%= f.submit "Filter", class: "c-btn c-btn--secondary" %>
<% end %>
<% end %>