Class: ActiveAdmin::Views::ActiveAdminForm

Inherits:
FormtasticProxy
  • Object
show all
Defined in:
lib/active_admin/views/components/active_admin_form.rb

Instance Method Summary collapse

Methods inherited from FormtasticProxy

#closing_tag, #opening_tag, #split_string_on, #to_s

Instance Method Details

#actions(*args, &block) ⇒ Object



68
69
70
71
72
# File 'lib/active_admin/views/components/active_admin_form.rb', line 68

def actions(*args, &block)
  block_given? ?
    insert_tag(SemanticActionsProxy, form_builder, *args, &block) :
    actions(*args) { commit_action_with_cancel_link }
end

#add_create_another_checkboxObject



80
81
82
83
84
# File 'lib/active_admin/views/components/active_admin_form.rb', line 80

def add_create_another_checkbox
  if %w(new create).include?(helpers.action_name) && active_admin_config && active_admin_config.create_another
    current_arbre_element.add_child(create_another_checkbox)
  end
end

#build(resource, options = {}, &block) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/active_admin/views/components/active_admin_form.rb', line 26

def build(resource, options = {}, &block)
  @resource = resource
  options = options.deep_dup
  options[:builder] ||= ActiveAdmin::FormBuilder
  form_string = helpers.semantic_form_for(resource, options) do |f|
    @form_builder = f
  end

  @opening_tag, @closing_tag = split_string_on(form_string, "</form>")
  instance_eval(&block) if block_given?

  # Rails sets multipart automatically if a file field is present,
  # but the form tag has already been rendered before the block eval.
  if multipart? && @opening_tag !~ /multipart/
    @opening_tag.sub!(/<form/, '<form enctype="multipart/form-data"')
  end
end


74
75
76
77
78
# File 'lib/active_admin/views/components/active_admin_form.rb', line 74

def commit_action_with_cancel_link
  add_create_another_checkbox
  action(:submit)
  cancel_link
end

#form_buffersObject



98
99
100
# File 'lib/active_admin/views/components/active_admin_form.rb', line 98

def form_buffers
  raise "'form_buffers' has been removed from ActiveAdmin::FormBuilder, please read https://github.com/activeadmin/activeadmin/blob/master/docs/5-forms.md for details."
end

#has_many(*args, &block) ⇒ Object



86
87
88
# File 'lib/active_admin/views/components/active_admin_form.rb', line 86

def has_many(*args, &block)
  insert_tag(HasManyProxy, form_builder, *args, &block)
end

#input(*args) ⇒ Object



64
65
66
# File 'lib/active_admin/views/components/active_admin_form.rb', line 64

def input(*args)
  proxy_call_to_form :input, *args
end

#inputs(*args, &block) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/active_admin/views/components/active_admin_form.rb', line 44

def inputs(*args, &block)
  if block_given?
    form_builder.template.assigns[:has_many_block] = true
  end
  if block_given? && block.arity == 0
    wrapped_block = proc do
      wrap_it = form_builder.already_in_an_inputs_block ? true : false
      form_builder.already_in_an_inputs_block = true
      content = form_builder.template.capture do
        block.call
      end
      form_builder.already_in_an_inputs_block = wrap_it
      content
    end
    insert_tag(SemanticInputsProxy, form_builder, *args, &wrapped_block)
  else
    proxy_call_to_form(:inputs, *args, &block)
  end
end

#multipart?Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/active_admin/views/components/active_admin_form.rb', line 90

def multipart?
  form_builder && form_builder.multipart?
end

#objectObject



94
95
96
# File 'lib/active_admin/views/components/active_admin_form.rb', line 94

def object
  form_builder.object
end