commit: a56c4742d316a3c6f3e7afa927f1a537890317b0
parent: 38fc1b498d971f7b33532c583b12e5dd3469af3c
Author: beatrix <beatrix.bitrot@gmail.com>
Date: Fri, 29 Dec 2017 20:43:43 -0500
keep the same filters and page when doing custom emojo stuff (fixes #6112) (#6114)
Diffstat:
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
@@ -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
@@ -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
@@ -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