2017-09-19 11:52:38 +10:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Admin
|
|
|
|
class CustomEmojisController < BaseController
|
2017-10-06 08:42:05 +11:00
|
|
|
before_action :set_custom_emoji, except: [:index, :new, :create]
|
|
|
|
|
2017-09-19 11:52:38 +10:00
|
|
|
def index
|
2017-11-12 06:23:33 +11:00
|
|
|
authorize :custom_emoji, :index?
|
2017-11-08 00:49:32 +11:00
|
|
|
@custom_emojis = filtered_custom_emojis.eager_load(:local_counterpart).page(params[:page])
|
2017-09-19 11:52:38 +10:00
|
|
|
end
|
|
|
|
|
|
|
|
def new
|
2017-11-12 06:23:33 +11:00
|
|
|
authorize :custom_emoji, :create?
|
2017-09-19 11:52:38 +10:00
|
|
|
@custom_emoji = CustomEmoji.new
|
|
|
|
end
|
|
|
|
|
|
|
|
def create
|
2017-11-12 06:23:33 +11:00
|
|
|
authorize :custom_emoji, :create?
|
|
|
|
|
2017-09-19 11:52:38 +10:00
|
|
|
@custom_emoji = CustomEmoji.new(resource_params)
|
|
|
|
|
|
|
|
if @custom_emoji.save
|
|
|
|
redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.created_msg')
|
|
|
|
else
|
|
|
|
render :new
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2017-10-28 01:11:30 +11:00
|
|
|
def update
|
2017-11-12 06:23:33 +11:00
|
|
|
authorize @custom_emoji, :update?
|
|
|
|
|
2017-10-28 01:11:30 +11:00
|
|
|
if @custom_emoji.update(resource_params)
|
|
|
|
redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.updated_msg')
|
|
|
|
else
|
|
|
|
redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.update_failed_msg')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2017-09-19 11:52:38 +10:00
|
|
|
def destroy
|
2017-11-12 06:23:33 +11:00
|
|
|
authorize @custom_emoji, :destroy?
|
2017-10-06 08:42:05 +11:00
|
|
|
@custom_emoji.destroy
|
2017-09-19 11:52:38 +10:00
|
|
|
redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.destroyed_msg')
|
|
|
|
end
|
|
|
|
|
2017-10-06 08:42:05 +11:00
|
|
|
def copy
|
2017-11-12 06:23:33 +11:00
|
|
|
authorize @custom_emoji, :copy?
|
|
|
|
|
2017-11-08 00:49:32 +11:00
|
|
|
emoji = CustomEmoji.find_or_create_by(domain: nil, shortcode: @custom_emoji.shortcode)
|
2017-10-06 08:42:05 +11:00
|
|
|
|
2017-11-08 00:49:32 +11:00
|
|
|
if emoji.update(image: @custom_emoji.image)
|
2017-10-14 23:40:10 +11:00
|
|
|
flash[:notice] = I18n.t('admin.custom_emojis.copied_msg')
|
2017-10-06 08:42:05 +11:00
|
|
|
else
|
2017-10-14 23:40:10 +11:00
|
|
|
flash[:alert] = I18n.t('admin.custom_emojis.copy_failed_msg')
|
2017-10-06 08:42:05 +11:00
|
|
|
end
|
2017-10-14 23:40:10 +11:00
|
|
|
|
2017-10-27 01:44:24 +11:00
|
|
|
redirect_to admin_custom_emojis_path(page: params[:page])
|
2017-10-06 08:42:05 +11:00
|
|
|
end
|
|
|
|
|
|
|
|
def enable
|
2017-11-12 06:23:33 +11:00
|
|
|
authorize @custom_emoji, :enable?
|
2017-10-06 08:42:05 +11:00
|
|
|
@custom_emoji.update!(disabled: false)
|
|
|
|
redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.enabled_msg')
|
|
|
|
end
|
|
|
|
|
|
|
|
def disable
|
2017-11-12 06:23:33 +11:00
|
|
|
authorize @custom_emoji, :disable?
|
2017-10-06 08:42:05 +11:00
|
|
|
@custom_emoji.update!(disabled: true)
|
|
|
|
redirect_to admin_custom_emojis_path, notice: I18n.t('admin.custom_emojis.disabled_msg')
|
|
|
|
end
|
|
|
|
|
2017-09-19 11:52:38 +10:00
|
|
|
private
|
|
|
|
|
2017-10-06 08:42:05 +11:00
|
|
|
def set_custom_emoji
|
|
|
|
@custom_emoji = CustomEmoji.find(params[:id])
|
|
|
|
end
|
|
|
|
|
2017-09-19 11:52:38 +10:00
|
|
|
def resource_params
|
2017-10-28 01:11:30 +11:00
|
|
|
params.require(:custom_emoji).permit(:shortcode, :image, :visible_in_picker)
|
2017-09-19 11:52:38 +10:00
|
|
|
end
|
2017-10-06 08:42:05 +11:00
|
|
|
|
|
|
|
def filtered_custom_emojis
|
|
|
|
CustomEmojiFilter.new(filter_params).results
|
|
|
|
end
|
|
|
|
|
|
|
|
def filter_params
|
|
|
|
params.permit(
|
|
|
|
:local,
|
|
|
|
:remote
|
|
|
|
)
|
|
|
|
end
|
2017-09-19 11:52:38 +10:00
|
|
|
end
|
|
|
|
end
|