Class: Admin::UserFieldsController
- Inherits:
-
AdminController
- Object
- AdminController
- Admin::UserFieldsController
- Defined in:
- app/controllers/admin/user_fields_controller.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.columns ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'app/controllers/admin/user_fields_controller.rb', line 4 def self.columns columns = %i[ name field_type editable description requirement show_on_profile show_on_user_card position searchable ] DiscoursePluginRegistry.apply_modifier(:admin_user_fields_columns, columns) end |
Instance Method Details
#create ⇒ Object
19 20 21 22 23 24 25 26 |
# File 'app/controllers/admin/user_fields_controller.rb', line 19 def create field = UserField.new(params.require(:user_field).permit(*Admin::UserFieldsController.columns)) field.position = (UserField.maximum(:position) || 0) + 1 (field) json_result(field, serializer: UserFieldSerializer) { field.save } end |
#destroy ⇒ Object
60 61 62 63 64 |
# File 'app/controllers/admin/user_fields_controller.rb', line 60 def destroy field = UserField.where(id: params.require(:id)).first field.destroy if field.present? render json: success_json end |
#edit ⇒ Object
38 39 |
# File 'app/controllers/admin/user_fields_controller.rb', line 38 def edit end |
#index ⇒ Object
28 29 30 31 |
# File 'app/controllers/admin/user_fields_controller.rb', line 28 def index user_fields = UserField.all.includes(:user_field_options).order(:position) render_serialized(user_fields, UserFieldSerializer, root: "user_fields") end |
#show ⇒ Object
33 34 35 36 |
# File 'app/controllers/admin/user_fields_controller.rb', line 33 def show user_field = UserField.find(params[:id]) render_serialized(user_field, UserFieldSerializer) end |
#update ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'app/controllers/admin/user_fields_controller.rb', line 41 def update field_params = params[:user_field] field = UserField.where(id: params.require(:id)).first Admin::UserFieldsController.columns.each do |col| field.public_send("#{col}=", field_params[col]) unless field_params[col].nil? end (field) if field.save if !field.show_on_profile && !field.show_on_user_card DirectoryColumn.where(user_field_id: field.id).destroy_all end render_serialized(field, UserFieldSerializer, root: "user_field") else render_json_error(field) end end |