Class: Basepack::Forms::Factories::RailsAdmin

Inherits:
Base
  • Object
show all
Defined in:
lib/basepack/forms/factories/rails_admin.rb

Direct Known Subclasses

QueryRailsAdmin

Defined Under Namespace

Classes: Bindings

Constant Summary

Constants inherited from Base

Base::FIELDS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#new_field, #new_form, #new_group

Constructor Details

#initialize(section, view, form_class = Forms::Base, group_class = Groups::Base) ⇒ RailsAdmin

Returns a new instance of RailsAdmin.



28
29
30
31
32
# File 'lib/basepack/forms/factories/rails_admin.rb', line 28

def initialize(section, view, form_class = Forms::Base, group_class = Groups::Base)
  super(form_class, group_class)
  @section      = section
  @view         = view
end

Instance Attribute Details

#sectionObject (readonly)

Returns the value of attribute section.



6
7
8
# File 'lib/basepack/forms/factories/rails_admin.rb', line 6

def section
  @section
end

Instance Method Details

#build_form(form) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/basepack/forms/factories/rails_admin.rb', line 34

def build_form(form)
  bindings = Bindings.new(form, @view)

  Basepack::Utils.model_config(form.resource_class).send(@section).with(bindings).visible_groups.map do |g|
    i = 0
    fields = g.fields.sort_by {|f| [f.order, i += 1] } # stable sort

    form.group(g) do |group|
      fields.each do |f|
        group.field(f.name, f.with(bindings)) do |field|
          def field.partial_delegated
            partial = super.to_s
            partial.include?('/') ? partial : File.join('forms', 'edit', partial)
          end
        end
      end
    end
  end

  form
end