Class: SimpleAdmin::AdminController

Inherits:
ApplicationController show all
Defined in:
app/controllers/simple_admin/admin_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



41
42
43
44
45
46
47
48
49
50
51
52
# File 'app/controllers/simple_admin/admin_controller.rb', line 41

def create
  form_params = params[@model_name.downcase]
  @resource = @admin.new_resource(@model_name)
  @resource.assign_attributes form_params.to_h.symbolize_keys!

  if @resource.save
    redirect_to admin_model_index_path @model_name
  else
    flash[:error] = "Could not create #{@model_name}! – #{@resource.errors.messages.to_a.join(", ")}"
    redirect_to admin_model_new_path @model_name
  end
end

#destroyObject



54
55
56
57
58
# File 'app/controllers/simple_admin/admin_controller.rb', line 54

def destroy
  @resource = @admin.get_resource(@model_name, params[:id])
  @resource.destroy!
  redirect_to admin_model_index_path @model_name
end

#extensionObject



60
61
62
63
64
# File 'app/controllers/simple_admin/admin_controller.rb', line 60

def extension
  @extension = @admin.extensions.find{ |e| e.constant.name == params[:name].camelize }
  @extension_instance = @extension.instantiate
  render path_to_extension_view
end

#extension_postObject



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'app/controllers/simple_admin/admin_controller.rb', line 66

def extension_post
  @extension = @admin.extensions.find{ |e| e.constant.name == params[:name].camelize }
  @extension_instance = @extension.instantiate

  if params[:extension].present?
    @extension_instance.form_params = params[:extension]

    if @extension_instance.process!
      # success
      flash[:notice] = @extension_instance.flash_notice
      redirect_to admin_extension_path(params[:name])
    else
      # failure
      flash[:alert] = @extension_instance.flash_alert
      render path_to_extension_view
    end
  end
end

#indexObject



12
13
# File 'app/controllers/simple_admin/admin_controller.rb', line 12

def index
end

#model_editObject



20
21
22
# File 'app/controllers/simple_admin/admin_controller.rb', line 20

def model_edit
  @resource = @admin.get_resource(params[:model_name], params[:id])
end

#model_indexObject



15
16
17
18
# File 'app/controllers/simple_admin/admin_controller.rb', line 15

def model_index
  @resources = @model_name.constantize.order('updated_at DESC').page(params[:page]) || []
  render :index
end

#model_newObject



24
25
26
# File 'app/controllers/simple_admin/admin_controller.rb', line 24

def model_new
  @resource = @admin.new_resource(params[:model_name])
end

#updateObject



28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/controllers/simple_admin/admin_controller.rb', line 28

def update
  form_params = params[@model_name.downcase]
  @resource = @admin.get_resource(@model_name, params[:id])
  @resource.assign_attributes form_params.to_h.symbolize_keys!

  if @resource.save
    redirect_to admin_model_index_path @model_name
  else
    flash[:error] = "Could not update #{@model_name}! – #{@resource.errors.messages.to_a.join(", ")}"
    redirect_to admin_model_edit_path(@model_name, params[:id])
  end
end