class ActionAdmin::Form::Builder

Public Class Methods

new(*) click to toggle source

Initialize form builder

Calls superclass method
# File lib/action_admin/form/builder.rb, line 5
def initialize(*)
  super

  @admin = {
    button_class:             'button',
    error_notification_class: 'callout alert',
    default_wrapper:          :admin_vertical_form,
    wrapper_mappings:         {
      check_boxes:   :admin_horizontal_radio_and_checkboxes,
      radio_buttons: :admin_horizontal_radio_and_checkboxes,
      # boolean:       :admin_horizontal_radio_and_checkboxes,
      datetime:      :admin_horizontal_multi_select,
      date:          :admin_horizontal_multi_select,
      time:          :admin_horizontal_multi_select,
      # file:          :admin_horizontal_file_input
    }
  }

  @wrapper = ::SimpleForm.wrapper(options[:wrapper] || @admin[:default_wrapper])
end

Public Instance Methods

attempt_mapping_with_custom_namespace(input_name) click to toggle source

Find namespaced input

# File lib/action_admin/form/builder.rb, line 53
def attempt_mapping_with_custom_namespace(input_name)
  ['ActionAdmin', 'Admin'].each do |namespace|
    if (mapping = attempt_mapping(input_name, namespace.constantize))
      return mapping
    end
  end

  nil
end
button(type, *args, &block) click to toggle source

Create form button

# File lib/action_admin/form/builder.rb, line 27
def button(type, *args, &block)
  options = args.extract_options!.dup
  options[:class] = [@admin[:button_class], options[:class]].compact
  args << options
  if respond_to?(:"#{type}_button")
    send(:"#{type}_button", *args, &block)
  else
    send(type, *args, &block)
  end
end
error_notification(options={}) click to toggle source

Create error notification

# File lib/action_admin/form/builder.rb, line 39
def error_notification(options={})
  Form::ErrorNotification.new(self, options).render
end
find_wrapper_mapping(input_type) click to toggle source

Find field wrapper

# File lib/action_admin/form/builder.rb, line 44
def find_wrapper_mapping(input_type)
  if options[:wrapper_mappings] && options[:wrapper_mappings][input_type]
    options[:wrapper_mappings][input_type]
  else
    @admin[:wrapper_mappings] && @admin[:wrapper_mappings][input_type]
  end
end