Class: MerbAdmin::Main
- Inherits:
-
Application
- Object
- Merb::Controller
- Application
- MerbAdmin::Main
- Includes:
- Merb::MerbAdmin::MainHelper
- Defined in:
- app/controllers/main.rb
Instance Method Summary collapse
- #create ⇒ Object
- #delete ⇒ Object
- #destroy ⇒ Object
- #edit ⇒ Object
- #index ⇒ Object
- #list ⇒ Object
- #new ⇒ Object
- #update ⇒ Object
Methods included from Merb::MerbAdmin::MainHelper
#object_property, #object_title, #paginate
Instance Method Details
#create ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'app/controllers/main.rb', line 52 def create object = params[@abstract_model.singular_name] || {} # Delete fields that are blank object.each do |key, value| object[key] = nil if value.blank? end has_one_associations = @abstract_model.has_one_associations.map{|association| [association, (params[:associations] || {}).delete(association[:name])]} has_many_associations = @abstract_model.has_many_associations.map{|association| [association, (params[:associations] || {}).delete(association[:name])]} @object = @abstract_model.new(object) if @object.save && has_one_associations.each{|association, id| update_has_one_association(association, id)} && has_many_associations.each{|association, ids| update_has_many_association(association, ids)} if params[:_continue] redirect(url(:admin_edit, :model_name => @abstract_model.singular_name, :id => @object.id), :message => {:notice => "#{@abstract_model.pretty_name} was successfully created"}) elsif params[:_add_another] redirect(url(:admin_new, :model_name => @abstract_model.singular_name), :message => {:notice => "#{@abstract_model.pretty_name} was successfully created"}) else redirect(url(:admin_list, :model_name => @abstract_model.singular_name), :message => {:notice => "#{@abstract_model.pretty_name} was successfully created"}) end else [:error] = "#{@abstract_model.pretty_name} failed to be created" render(:new, :layout => 'form') end end |
#delete ⇒ Object
97 98 99 |
# File 'app/controllers/main.rb', line 97 def delete render(:layout => 'form') end |
#destroy ⇒ Object
101 102 103 104 105 106 107 |
# File 'app/controllers/main.rb', line 101 def destroy if @object.destroy redirect(url(:admin_list, :model_name => @abstract_model.singular_name), :message => {:notice => "#{@abstract_model.pretty_name} was successfully destroyed"}) else raise BadRequest end end |
#edit ⇒ Object
48 49 50 |
# File 'app/controllers/main.rb', line 48 def edit render(:layout => 'form') end |
#index ⇒ Object
10 11 12 |
# File 'app/controllers/main.rb', line 10 def index render(:layout => 'dashboard') end |
#list ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/controllers/main.rb', line 14 def list = {} merge_query!() merge_filter!() merge_sort!() merge_sort_reverse!() if params[:all] = { :limit => MerbAdmin[:per_page] * 2, }.merge() @objects = @abstract_model.all().reverse else @current_page = (params[:page] || 1).to_i = { :page => @current_page, :per_page => MerbAdmin[:per_page], }.merge() @page_count, @objects = @abstract_model.paginated() .delete(:page) .delete(:per_page) .delete(:offset) .delete(:limit) end @record_count = @abstract_model.count() render(:layout => 'list') end |
#new ⇒ Object
43 44 45 46 |
# File 'app/controllers/main.rb', line 43 def new @object = @abstract_model.new render(:layout => 'form') end |
#update ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'app/controllers/main.rb', line 75 def update object = params[@abstract_model.singular_name] || {} # Delete fields that are blank object.each do |key, value| object[key] = nil if value.blank? end has_one_associations = @abstract_model.has_one_associations.map{|association| [association, (params[:associations] || {}).delete(association[:name])]} has_many_associations = @abstract_model.has_many_associations.map{|association| [association, (params[:associations] || {}).delete(association[:name])]} if @object.update_attributes(object) && has_one_associations.each{|association, id| update_has_one_association(association, id)} && has_many_associations.each{|association, ids| update_has_many_association(association, ids)} if params[:_continue] redirect(url(:admin_edit, :model_name => @abstract_model.singular_name, :id => @object.id), :message => {:notice => "#{@abstract_model.pretty_name} was successfully updated"}) elsif params[:_add_another] redirect(url(:admin_new, :model_name => @abstract_model.singular_name), :message => {:notice => "#{@abstract_model.pretty_name} was successfully updated"}) else redirect(url(:admin_list, :model_name => @abstract_model.singular_name), :message => {:notice => "#{@abstract_model.pretty_name} was successfully updated"}) end else [:error] = "#{@abstract_model.pretty_name} failed to be updated" render(:edit, :layout => 'form') end end |