class Basepack::Forms::Factories::RailsAdmin

Attributes

section[R]

Public Class Methods

new(section, view, form_class = Forms::Base, group_class = Groups::Base) click to toggle source
Calls superclass method Basepack::Forms::Factories::Base::new
# 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

Public Instance Methods

build_form(form) click to toggle source
# 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