Module: Admin::EditableColumns
- Extended by:
- ActiveSupport::Concern
- Includes:
- AlertsHelper
- Defined in:
- app/controllers/concerns/admin/editable_columns.rb
Instance Method Summary
collapse
#flash_danger_messages, #flash_messages, #flash_success_messages, #flash_warning_messages, #render_alert
Instance Method Details
#column_params ⇒ Object
51
52
53
|
# File 'app/controllers/concerns/admin/editable_columns.rb', line 51
def column_params
sanitize_params(params.require(:item).permit!)
end
|
#column_partial(operation) ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'app/controllers/concerns/admin/editable_columns.rb', line 34
def column_partial(operation)
column = params[:column]
return "#{operation}_#{column}" if params[:custom].presence
if controller_model.respond_to?(:enumerized_attributes) && controller_model.enumerized_attributes[column]
type = :enumerize
else
columns_info = controller_model.columns.index_by(&:name).with_indifferent_access
type = columns_info[column].type
type = :string if %i(integer float decimal).include?(type)
end
"admin/editable_columns/#{operation}/#{type}"
end
|
#controller_model ⇒ Object
30
31
32
|
# File 'app/controllers/concerns/admin/editable_columns.rb', line 30
def controller_model
controller_name.singularize.camelize.constantize
end
|
#edit_column ⇒ Object
10
11
12
13
14
|
# File 'app/controllers/concerns/admin/editable_columns.rb', line 10
def edit_column
item = controller_model.find(params[:id])
form = render_to_string('admin/editable_columns/edit_column', locals: {item: item, column_partial: column_partial(:edit), options: OpenStruct.new(params)}, layout: false)
render json: {form: form}
end
|
#update_column ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'app/controllers/concerns/admin/editable_columns.rb', line 16
def update_column
item = controller_model.find(params[:id])
unless item.update(column_params)
messages = item.errors.full_messages.join("</br>")
alert = render_alert(messages, :danger)
render json: {alert: alert}
return
end
result = render_to_string(partial: column_partial(:result), locals: {item: item, options: OpenStruct.new(params)})
render json: {result: result}
end
|