mastodon/app/controllers/filters_controller.rb

75 lines
1.4 KiB
Ruby

# frozen_string_literal: true
class FiltersController < ApplicationController
include Authorization
layout 'admin'
before_action :set_filters, only: :index
before_action :set_filter, only: [:edit, :update, :destroy]
before_action :set_pack
before_action :set_body_classes
def index
@filters = current_account.custom_filters
end
def new
@filter = current_account.custom_filters.build
end
def create
@filter = current_account.custom_filters.build(resource_params)
if @filter.save
toggle_filters
redirect_to filters_path
else
render action: :new
end
end
def edit; end
def update
if @filter.update(resource_params)
toggle_filters
redirect_to filters_path
else
render action: :edit
end
end
def destroy
@filter.destroy
toggle_filters
redirect_to filters_path
end
private
def toggle_filters
current_user.update!(filters_enabled: !current_account.custom_filters.enabled.blank?)
end
def set_pack
use_pack 'settings'
end
def set_filters
@filters = current_account.custom_filters
end
def set_filter
@filter = current_account.custom_filters.find(params[:id])
end
def resource_params
params.require(:custom_filter).permit(:phrase, :expires_in, :is_enabled)
end
def set_body_classes
@body_classes = 'admin'
end
end