FEATURE: New "Dropdown" user field type

This commit is contained in:
Robin Ward
2015-07-28 12:29:40 -04:00
parent f22618050f
commit dc8a68fd29
18 changed files with 248 additions and 52 deletions

View File

@ -7,13 +7,16 @@ class Admin::UserFieldsController < Admin::AdminController
def create
field = UserField.new(params.require(:user_field).permit(*Admin::UserFieldsController.columns))
field.required = params[:required] == "true"
fetch_options(field)
json_result(field, serializer: UserFieldSerializer) do
field.save
end
end
def index
render_serialized(UserField.all, UserFieldSerializer, root: 'user_fields')
user_fields = UserField.all.includes(:user_field_options)
render_serialized(user_fields, UserFieldSerializer, root: 'user_fields')
end
def update
@ -24,6 +27,8 @@ class Admin::UserFieldsController < Admin::AdminController
Admin::UserFieldsController.columns.each do |col|
field.send("#{col}=", field_params[col] || false)
end
UserFieldOption.where(user_field_id: field.id).delete_all
fetch_options(field)
json_result(field, serializer: UserFieldSerializer) do
field.save
@ -36,5 +41,14 @@ class Admin::UserFieldsController < Admin::AdminController
render nothing: true
end
protected
def fetch_options(field)
options = params[:user_field][:options]
if options.present?
field.user_field_options_attributes = options.map {|o| {value: o} }.uniq
end
end
end