diff --git a/app/controllers/admin/invitations_controller.rb b/app/controllers/admin/invitations_controller.rb index 435663a34..5d497405c 100644 --- a/app/controllers/admin/invitations_controller.rb +++ b/app/controllers/admin/invitations_controller.rb @@ -3,7 +3,10 @@ module Admin layout "admin" def index - @invitations = User.where(registered: false).page(params[:page]).per(50) + @invitations = Admin::UsersQuery.call(relation: User.invited, + options: params.permit( + :search, + )).page(params[:page]).per(50) end def new; end diff --git a/app/models/user.rb b/app/models/user.rb index 2f07dc7fd..6d9e3d427 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -170,6 +170,7 @@ class User < ApplicationRecord scope :eager_load_serialized_data, -> { includes(:roles) } scope :registered, -> { where(registered: true) } + scope :invited, -> { where(registered: false) } # Unfortunately pg_search's default SQL query is not performant enough in this # particular case (~ 500ms). There are multiple reasons: # => creates a complex query like `SELECT FROM users INNER JOIN users` to compute ranking. diff --git a/app/views/admin/invitations/index.html.erb b/app/views/admin/invitations/index.html.erb index 3c22f7087..306841676 100644 --- a/app/views/admin/invitations/index.html.erb +++ b/app/views/admin/invitations/index.html.erb @@ -5,7 +5,16 @@

Members (Invitations)

<%= render "admin/users/index/tabs" %> - <%= render "admin/users/index/controls" %> +
+ <%= form_with url: admin_invitations_path, method: :get, local: true, class:"grow-1" do |f| %> + <% render "admin/users/index/search_field", f: f, placeholder: "Search invited members...", aria_label: "Search invited members by name, username, or email" %> + <% end %> +
+ <%= paginate @invitations, theme: "admin", scope: @invitations, label: "Paginate invitations" %> + <%= link_to "Invite member", new_admin_invitation_path, class: "c-cta c-cta--branded self-end" %> +
+
+ diff --git a/app/views/admin/users/index/_controls.html.erb b/app/views/admin/users/index/_controls.html.erb index cb20eae0b..3c4f96b4e 100644 --- a/app/views/admin/users/index/_controls.html.erb +++ b/app/views/admin/users/index/_controls.html.erb @@ -18,8 +18,8 @@ <%= paginate @users, theme: "admin", scope: @users, label: "Paginate users" %>
-