Files
akkounts/app/views/admin/users/index.html.erb
T
raucao d58c995230
CI / Test (pull_request) Successful in 33s
Release Drafter / Update release notes draft (pull_request) Successful in 2s
Admin users page: filter by username
Allow admins to filter the user list/index by username (partial matches
allowed)
2026-08-10 10:36:05 -06:00

64 lines
1.9 KiB
ERB

<%= render HeaderComponent.new(title: "Users") %>
<%= render MainSimpleComponent.new do %>
<section>
<%= render QuickstatsContainerComponent.new do %>
<%= render QuickstatsItemComponent.new(
type: :number,
title: 'Confirmed',
value: @stats[:users_confirmed],
) %>
<%= render QuickstatsItemComponent.new(
type: :number,
title: 'Pending',
value: @stats[:users_pending],
) %>
<% if @show_contributors %>
<%= render QuickstatsItemComponent.new(
type: :number,
title: Setting.member_status_contributor.pluralize,
value: @stats[:users_contributing],
) %>
<% end %>
<% if @show_sustainers %>
<%= render QuickstatsItemComponent.new(
type: :number,
title: Setting.member_status_sustainer.pluralize,
value: @stats[:users_paying],
) %>
<% end %>
<% end %>
</section>
<section>
<%= render partial: "admin/username_search_form",
locals: { path: admin_users_path } %>
</section>
<section>
<table class="divided mb-8">
<thead>
<tr>
<th>UID</th>
<th>Status</th>
<th>Roles</th>
</tr>
</thead>
<tbody>
<% @users.each do |user| %>
<tr>
<td><%= link_to(user.cn, admin_user_path(user.cn)) %></td>
<td>
<%= user.confirmed_at.nil? ? badge("pending", :yellow) : "" %>
<% if @show_contributors %><%= @contributors.include?(user.cn) ? badge("contributor", :green) : "" %><% end %>
<% if @show_sustainers %><%= @sustainers.include?(user.cn) ? badge("sustainer", :green) : "" %><% end %>
</td>
<td><%= @admins.include?(user.cn) ? badge("admin", :red) : "" %></td>
</tr>
<% end %>
</tbody>
</table>
<%== pagy_nav @pagy %>
</section>
<% end %>