Merge pull request #5677 from tomhughes/user-list-enhancements

User list enhancements
This commit is contained in:
Andy Allan 2025-02-15 17:37:48 +00:00 committed by GitHub
commit 90e787eed8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 83 additions and 52 deletions

View file

@ -16,8 +16,8 @@ module Users
@params = params.permit(:status, :ip, :before, :after)
users = User.all
users = users.where(:status => @params[:status]) if @params[:status]
users = users.where(:creation_address => @params[:ip]) if @params[:ip]
users = users.where(:status => @params[:status]) if @params[:status].present?
users = users.where("creation_address <<= ?", @params[:ip]) if @params[:ip].present?
@users_count = users.limit(501).count
@users_count = I18n.t("count.at_least_pattern", :count => 500) if @users_count > 500

View file

@ -1,48 +1,52 @@
<turbo-frame id="pagination" target="_top" data-turbo="false">
<%= form_tag @params, :method => :put do %>
<div class="row">
<div class="col">
<%= render "shared/pagination",
:translation_scope => "shared.pagination.users",
:newer_id => @newer_users_id,
:older_id => @older_users_id %>
</div>
<div class="col col-auto">
<%= t ".found_users", :count => @users_count %>
</div>
<div>
<% unless @users.empty? %>
<%= form_tag @params, :method => :put do %>
<div class="row">
<div class="col">
<%= render "shared/pagination",
:translation_scope => "shared.pagination.users",
:newer_id => @newer_users_id,
:older_id => @older_users_id %>
</div>
<div class="col col-auto">
<%= t ".found_users", :count => @users_count %>
</div>
<div>
<%= hidden_field_tag :status, params[:status] if params[:status] %>
<%= hidden_field_tag :ip, params[:ip] if params[:ip] %>
<%= hidden_field_tag :page, params[:page] if params[:page] %>
<table id="user_list" class="table table-borderless table-striped">
<thead>
<tr>
<td colspan="2">
</td>
<td>
<%= check_box_tag "user_all", "1", false %>
</td>
</tr>
</thead>
<%= render :partial => "user", :collection => @users %>
</table>
<%= hidden_field_tag :status, params[:status] if params[:status] %>
<%= hidden_field_tag :ip, params[:ip] if params[:ip] %>
<%= hidden_field_tag :page, params[:page] if params[:page] %>
<table id="user_list" class="table table-borderless table-striped">
<thead>
<tr>
<td colspan="2">
</td>
<td>
<%= check_box_tag "user_all", "1", false %>
</td>
</tr>
</thead>
<%= render :partial => "user", :collection => @users %>
</table>
<div class="row">
<div class="col">
<%= render "shared/pagination",
:translation_scope => "shared.pagination.users",
:newer_id => @newer_users_id,
:older_id => @older_users_id %>
</div>
<div class="col col-auto">
<%= t ".found_users", :count => @users_count %>
</div>
<div>
<div class="row">
<div class="col">
<%= render "shared/pagination",
:translation_scope => "shared.pagination.users",
:newer_id => @newer_users_id,
:older_id => @older_users_id %>
</div>
<div class="col col-auto">
<%= t ".found_users", :count => @users_count %>
</div>
<div>
<div>
<%= submit_tag t(".confirm"), :name => "confirm", :class => "btn btn-primary" %>
<%= submit_tag t(".hide"), :name => "hide", :class => "btn btn-primary" %>
</div>
<% end %>
<div>
<%= submit_tag t(".confirm"), :name => "confirm", :class => "btn btn-primary" %>
<%= submit_tag t(".hide"), :name => "hide", :class => "btn btn-primary" %>
</div>
<% end %>
<% else -%>
<p><%= t ".empty" %></p>
<% end -%>
</turbo-frame>

View file

@ -7,7 +7,7 @@
<% if user.creation_address %>
<%= t ".summary_html",
:name => link_to(user.display_name, user),
:ip_address => link_to(user.creation_address, :ip => user.creation_address),
:ip_address => link_to(user.creation_address, :status => params[:status], :ip => user.creation_address),
:date => l(user.created_at, :format => :friendly) %>
<% else %>
<%= t ".summary_no_ip_html",

View file

@ -8,8 +8,26 @@
<h1><%= t(".heading") %></h1>
<% end %>
<% unless @users.empty? %>
<%= render :partial => "page" %>
<% else %>
<p><%= t ".empty" %></p>
<% end %>
<%= form_tag(users_list_path, :method => :get, :data => { "turbo" => true, "turbo-frame" => "pagination", "turbo-action" => "advance" }) do %>
<div class="row gx-1">
<div class="mb-3 col-md-auto">
<%= select_tag :status,
options_for_select(User.aasm.states.map(&:name).map { |state| [t(".states.#{state}"), state] }, params[:status]),
:include_blank => t(".select_status"),
:data => { :behavior => "category_dropdown" },
:class => "form-select" %>
</div>
<div class="mb-3 col-md">
<%= text_field_tag :ip,
params[:ip],
:placeholder => t(".ip_address"),
:autocomplete => "on",
:class => "form-control" %>
</div>
<div class="mb-3 col-md-auto">
<%= submit_tag t(".search"), :name => nil, :class => "btn btn-primary" %>
</div>
</div>
<% end -%>
<%= render :partial => "page" %>