mirror of
https://github.com/glitch-soc/mastodon.git
synced 2025-02-24 19:44:11 -05:00
74 lines
1.8 KiB
Ruby
74 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class Settings::KeywordMutesController < ApplicationController
|
|
include UserTrackingConcern
|
|
|
|
layout 'admin'
|
|
|
|
before_action :authenticate_user!
|
|
before_action :load_keyword_mute, only: [:edit, :update, :destroy]
|
|
after_action :bust_feed_caches, only: [:create, :update, :destroy]
|
|
|
|
def index
|
|
@keyword_mutes = paginated_keyword_mutes_for_account
|
|
end
|
|
|
|
def new
|
|
@keyword_mute = keyword_mutes_for_account.build
|
|
end
|
|
|
|
def create
|
|
@keyword_mute = keyword_mutes_for_account.create(keyword_mute_params)
|
|
|
|
if @keyword_mute.persisted?
|
|
redirect_to settings_keyword_mutes_path, notice: I18n.t('generic.changes_saved_msg')
|
|
else
|
|
render :new
|
|
end
|
|
end
|
|
|
|
def update
|
|
if @keyword_mute.update(keyword_mute_params)
|
|
redirect_to settings_keyword_mutes_path, notice: I18n.t('generic.changes_saved_msg')
|
|
else
|
|
render :edit
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
@keyword_mute.destroy!
|
|
|
|
redirect_to settings_keyword_mutes_path, notice: I18n.t('generic.changes_saved_msg')
|
|
end
|
|
|
|
def destroy_all
|
|
keyword_mutes_for_account.delete_all
|
|
|
|
redirect_to settings_keyword_mutes_path, notice: I18n.t('generic.changes_saved_msg')
|
|
end
|
|
|
|
private
|
|
|
|
def keyword_mutes_for_account
|
|
Glitch::KeywordMute.where(account: current_account)
|
|
end
|
|
|
|
def load_keyword_mute
|
|
@keyword_mute = keyword_mutes_for_account.find(params[:id])
|
|
end
|
|
|
|
def bust_feed_caches
|
|
# FIXME: this key is really meant to be an implementation detail
|
|
Redis.current.del("account:#{current_user.account_id}:regeneration")
|
|
regenerate_feed!
|
|
end
|
|
|
|
def keyword_mute_params
|
|
params.require(:keyword_mute).permit(:keyword, :whole_word)
|
|
end
|
|
|
|
def paginated_keyword_mutes_for_account
|
|
keyword_mutes_for_account.order(:keyword).page params[:page]
|
|
end
|
|
end
|