Class: Admin::UserFieldsController

Inherits:
AdminController
  • Object
show all
Defined in:
app/controllers/admin/user_fields_controller.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.columnsObject



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'app/controllers/admin/user_fields_controller.rb', line 4

def self.columns
  %i[
    name
    field_type
    editable
    description
    required
    show_on_profile
    show_on_user_card
    position
    searchable
  ]
end

Instance Method Details

#createObject



18
19
20
21
22
23
24
25
26
# File 'app/controllers/admin/user_fields_controller.rb', line 18

def create
  field = UserField.new(params.require(:user_field).permit(*Admin::UserFieldsController.columns))

  field.position = (UserField.maximum(:position) || 0) + 1
  field.required = params[:user_field][:required] == "true"
  update_options(field)

  json_result(field, serializer: UserFieldSerializer) { field.save }
end

#destroyObject



52
53
54
55
56
# File 'app/controllers/admin/user_fields_controller.rb', line 52

def destroy
  field = UserField.where(id: params.require(:id)).first
  field.destroy if field.present?
  render json: success_json
end

#indexObject



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

#updateObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'app/controllers/admin/user_fields_controller.rb', line 33

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
  update_options(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