mirror of
https://github.com/indentlabs/notebook.git
synced 2025-10-26 11:19:22 +00:00
51 lines
1.4 KiB
Ruby
51 lines
1.4 KiB
Ruby
class CustomizationController < ApplicationController
|
|
before_action :verify_content_type_can_be_toggled, only: [:toggle_content_type]
|
|
|
|
def content_types
|
|
#todo find where these were universally defined and use that instead :(
|
|
@all_content_types = [
|
|
Universe, Character, Location, Item, Creature, Race,
|
|
Religion, Group, Magic, Language, Scene, Flora
|
|
]
|
|
|
|
@premium_content_types = [
|
|
Creature, Race, Religion, Group, Magic, Language, Scene, Flora
|
|
]
|
|
|
|
@my_activators = current_user.user_content_type_activators.pluck(:content_type)
|
|
end
|
|
|
|
def toggle_content_type
|
|
current_activator = current_user
|
|
.user_content_type_activators
|
|
.where(content_type: toggle_content_type_params[:content_type])
|
|
|
|
if current_activator.any?
|
|
current_activator.destroy_all
|
|
else
|
|
current_user
|
|
.user_content_type_activators
|
|
.create(content_type: toggle_content_type_params[:content_type])
|
|
end
|
|
|
|
redirect_to customization_content_types_path
|
|
end
|
|
|
|
def verify_content_type_can_be_toggled
|
|
return false unless toggle_content_type_value_whitelist.include?(toggle_content_type_params[:content_type])
|
|
end
|
|
|
|
private
|
|
|
|
def toggle_content_type_params
|
|
params.permit(:content_type, :active)
|
|
end
|
|
|
|
def toggle_content_type_value_whitelist
|
|
[
|
|
Character, Location, Item, Creature, Race, Religion,
|
|
Group, Magic, Language, Scene, Flora
|
|
].map(&:to_s)
|
|
end
|
|
end
|