diff --git a/app/controllers/admin/admins_controller.rb b/app/controllers/admin/admins_controller.rb index 439562e52..0014f1418 100644 --- a/app/controllers/admin/admins_controller.rb +++ b/app/controllers/admin/admins_controller.rb @@ -1,5 +1,7 @@ class Admin::AdminsController < Admin::UsersController before_action :find_resource, except: [:index, :new, :create, :login_as_assessor, :login_as_user, :console] + before_action :permit_search_params, except: [:index] + def index params[:search] ||= AdminSearch::DEFAULT_SEARCH params[:search].permit! @@ -21,7 +23,7 @@ def create authorize @resource, :create? @resource.save - location = @resource.persisted? ? admin_admins_path : nil + location = @resource.persisted? ? admin_admins_path(search: params[:search], page: params[:page]) : nil respond_with :admin, @resource, location: location end @@ -34,14 +36,18 @@ def update @resource.update_without_password(resource_params) end - respond_with :admin, @resource, location: admin_admins_path + respond_with :admin, + @resource, + location: admin_admins_path(search: params[:search], page: params[:page]) end def destroy authorize @resource, :destroy? @resource.soft_delete! - respond_with :admin, @resource, location: admin_admins_path + respond_with :admin, + @resource, + location: admin_admins_path(search: params[:search], page: params[:page]) end # NOTE: debug abilities for Admin - BEGIN @@ -80,4 +86,8 @@ def resource_params :first_name, :last_name) end + + def permit_search_params + params[:search].permit! + end end diff --git a/app/views/admin/admins/_form.html.slim b/app/views/admin/admins/_form.html.slim index 0a5be4926..9637833a0 100644 --- a/app/views/admin/admins/_form.html.slim +++ b/app/views/admin/admins/_form.html.slim @@ -1,6 +1,9 @@ .js-admin-strict-password-form -= simple_form_for [:admin, resource], html: { class: 'qae-form' } do |f| += simple_form_for [:admin, resource], + as: :admin, + url: resource.persisted? ? admin_admin_path(resource, search: params[:search], page: params[:page]) : admin_admins_path(search: params[:search], page: params[:page]), + html: { class: 'qae-form' } do |f| = render "shared/users/user_details", f: f @@ -9,6 +12,11 @@ .govuk-button-group class="govuk-!-margin-top-7 govuk-!-margin-bottom-9" = f.button :submit, class: 'govuk-button' - = link_to "Cancel", admin_admins_path, class: 'govuk-button govuk-button--secondary' + = link_to "Cancel", + admin_admins_path(search: params[:search], page: params[:page]), + class: 'govuk-button govuk-button--secondary' - if action_name == "edit" && policy(resource).destroy? - = link_to 'Delete', admin_admin_path(resource), data: { method: :delete, confirm: 'Are you sure you want to delete this user?' }, class: 'govuk-button govuk-button--warning' + = link_to 'Delete', + admin_admin_path(resource, search: params[:search], page: params[:page]), + data: { method: :delete, confirm: 'Are you sure you want to delete this user?' }, + class: 'govuk-button govuk-button--warning' diff --git a/app/views/admin/admins/_list.html.slim b/app/views/admin/admins/_list.html.slim index f16fc5da8..89cef106b 100644 --- a/app/views/admin/admins/_list.html.slim +++ b/app/views/admin/admins/_list.html.slim @@ -24,7 +24,7 @@ div role="region" aria-labelledby="table-list-admin-users-caption" tabindex="0" tr.govuk-table__row th.govuk-table__header scope="row" = link_to admin.full_name, - edit_admin_admin_path(admin), + edit_admin_admin_path(admin, search: params[:search], page: params[:page]), class: "govuk-link", aria: { label: "edit #{ admin.full_name }" } td.govuk-table__cell @@ -43,7 +43,7 @@ div role="region" aria-labelledby="table-list-admin-users-caption" tabindex="0" ' Not confirmed td.govuk-table__cell = link_to "Edit user", - edit_admin_admin_path(admin), + edit_admin_admin_path(admin, search: params[:search], page: params[:page]), class: "govuk-link", id: "edit-#{ admin.first_name.downcase }-#{ admin.last_name.downcase }", aria: { label: "edit #{ admin.full_name }" } diff --git a/app/views/admin/admins/edit.html.slim b/app/views/admin/admins/edit.html.slim new file mode 100644 index 000000000..177f6956f --- /dev/null +++ b/app/views/admin/admins/edit.html.slim @@ -0,0 +1,9 @@ +- title t("admin.users.edit_button.#{controller_name}") + +- content_for :before_main_content do + = link_to "Back to users list", admin_admins_path(search: params[:search], page: params[:page]), class: "govuk-back-link" + +h1.govuk-heading-xl + = t("admin.users.edit_button.#{controller_name}") + += render 'form', resource: @resource diff --git a/app/views/admin/admins/new.html.slim b/app/views/admin/admins/new.html.slim new file mode 100644 index 000000000..5cba2aeee --- /dev/null +++ b/app/views/admin/admins/new.html.slim @@ -0,0 +1,9 @@ +- title t("admin.users.edit_button.#{controller_name}") + +- content_for :before_main_content do + = link_to "Back to users list", admin_admins_path(search: params[:search], page: params[:page]), class: "govuk-back-link" + +h1.govuk-heading-xl + = t("admin.users.new_button.#{controller_name}") + += render 'form', resource: @resource