From a56c4742d316a3c6f3e7afa927f1a537890317b0 Mon Sep 17 00:00:00 2001 From: beatrix Date: Fri, 29 Dec 2017 20:43:43 -0500 Subject: [PATCH] keep the same filters and page when doing custom emojo stuff (fixes #6112) (#6114) --- .../admin/custom_emojis_controller.rb | 24 +++++++++++++------ .../custom_emojis/_custom_emoji.html.haml | 14 +++++------ app/views/admin/custom_emojis/index.html.haml | 2 +- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/app/controllers/admin/custom_emojis_controller.rb b/app/controllers/admin/custom_emojis_controller.rb index ccab03de42..d61bafdf02 100644 --- a/app/controllers/admin/custom_emojis_controller.rb +++ b/app/controllers/admin/custom_emojis_controller.rb @@ -3,6 +3,7 @@ module Admin class CustomEmojisController < BaseController before_action :set_custom_emoji, except: [:index, :new, :create] + before_action :set_filter_params def index authorize :custom_emoji, :index? @@ -32,23 +33,26 @@ module Admin if @custom_emoji.update(resource_params) log_action :update, @custom_emoji - redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.updated_msg') + flash[:notice] = I18n.t('admin.custom_emojis.updated_msg') else - redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.update_failed_msg') + flash[:alert] = I18n.t('admin.custom_emojis.update_failed_msg') end + redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) end def destroy authorize @custom_emoji, :destroy? @custom_emoji.destroy! log_action :destroy, @custom_emoji - redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.destroyed_msg') + flash[:notice] = I18n.t('admin.custom_emojis.destroyed_msg') + redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) end def copy authorize @custom_emoji, :copy? - emoji = CustomEmoji.find_or_initialize_by(domain: nil, shortcode: @custom_emoji.shortcode) + emoji = CustomEmoji.find_or_initialize_by(domain: nil, + shortcode: @custom_emoji.shortcode) emoji.image = @custom_emoji.image if emoji.save @@ -58,21 +62,23 @@ module Admin flash[:alert] = I18n.t('admin.custom_emojis.copy_failed_msg') end - redirect_to admin_custom_emojis_path(page: params[:page]) + redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) end def enable authorize @custom_emoji, :enable? @custom_emoji.update!(disabled: false) log_action :enable, @custom_emoji - redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.enabled_msg') + flash[:notice] = I18n.t('admin.custom_emojis.enabled_msg') + redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) end def disable authorize @custom_emoji, :disable? @custom_emoji.update!(disabled: true) log_action :disable, @custom_emoji - redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.disabled_msg') + flash[:notice] = I18n.t('admin.custom_emojis.disabled_msg') + redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) end private @@ -81,6 +87,10 @@ module Admin @custom_emoji = CustomEmoji.find(params[:id]) end + def set_filter_params + @filter_params = filter_params.to_hash.symbolize_keys + end + def resource_params params.require(:custom_emoji).permit(:shortcode, :image, :visible_in_picker) end diff --git a/app/views/admin/custom_emojis/_custom_emoji.html.haml b/app/views/admin/custom_emojis/_custom_emoji.html.haml index f7fd2538c9..fbaa9a1749 100644 --- a/app/views/admin/custom_emojis/_custom_emoji.html.haml +++ b/app/views/admin/custom_emojis/_custom_emoji.html.haml @@ -11,18 +11,18 @@ %td - if custom_emoji.local? - if custom_emoji.visible_in_picker - = table_link_to 'eye', t('admin.custom_emojis.listed'), admin_custom_emoji_path(custom_emoji, custom_emoji: { visible_in_picker: false }), method: :patch + = table_link_to 'eye', t('admin.custom_emojis.listed'), admin_custom_emoji_path(custom_emoji, custom_emoji: { visible_in_picker: false }, page: params[:page], **@filter_params), method: :patch - else - = table_link_to 'eye-slash', t('admin.custom_emojis.unlisted'), admin_custom_emoji_path(custom_emoji, custom_emoji: { visible_in_picker: true }), method: :patch + = table_link_to 'eye-slash', t('admin.custom_emojis.unlisted'), admin_custom_emoji_path(custom_emoji, custom_emoji: { visible_in_picker: true }, page: params[:page], **@filter_params), method: :patch - else - if custom_emoji.local_counterpart.present? - = link_to safe_join([custom_emoji_tag(custom_emoji.local_counterpart), t('admin.custom_emojis.overwrite')]), copy_admin_custom_emoji_path(custom_emoji, page: params[:page]), method: :post, class: 'table-action-link' + = link_to safe_join([custom_emoji_tag(custom_emoji.local_counterpart), t('admin.custom_emojis.overwrite')]), copy_admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :post, class: 'table-action-link' - else - = table_link_to 'copy', t('admin.custom_emojis.copy'), copy_admin_custom_emoji_path(custom_emoji, page: params[:page]), method: :post + = table_link_to 'copy', t('admin.custom_emojis.copy'), copy_admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :post %td - if custom_emoji.disabled? - = table_link_to 'power-off', t('admin.custom_emojis.enable'), enable_admin_custom_emoji_path(custom_emoji), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } + = table_link_to 'power-off', t('admin.custom_emojis.enable'), enable_admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } - else - = table_link_to 'power-off', t('admin.custom_emojis.disable'), disable_admin_custom_emoji_path(custom_emoji), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } + = table_link_to 'power-off', t('admin.custom_emojis.disable'), disable_admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } %td - = table_link_to 'times', t('admin.custom_emojis.delete'), admin_custom_emoji_path(custom_emoji), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } + = table_link_to 'times', t('admin.custom_emojis.delete'), admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } diff --git a/app/views/admin/custom_emojis/index.html.haml b/app/views/admin/custom_emojis/index.html.haml index 89ea3a6fe3..3a119276ca 100644 --- a/app/views/admin/custom_emojis/index.html.haml +++ b/app/views/admin/custom_emojis/index.html.haml @@ -29,7 +29,7 @@ .actions %button= t('admin.accounts.search') - = link_to t('admin.accounts.reset'), admin_accounts_path, class: 'button negative' + = link_to t('admin.accounts.reset'), admin_custom_emojis_path, class: 'button negative' .table-wrapper %table.table