Module: Forms::FormsHelper

Defined in:
app/helpers/forms/forms_helper.rb

Defined Under Namespace

Classes: FormBuilder

Instance Method Summary collapse

Instance Method Details

#field_template(id, klass) ⇒ Object



38
39
40
41
42
# File 'app/helpers/forms/forms_helper.rb', line 38

def field_template(id, klass)
  jquery_template_tag(id) do
    render :partial => klass.partial, :object => klass.new, :locals => { :index => "${index}", :prefix => "${prefix}" }
  end
end

#form_field(field, options = {}, &block) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/helpers/forms/forms_helper.rb', line 18

def form_field(field, options={}, &block)
  builder = FormBuilder.new(field, options[:prefix], self)
  
  (:div, :class => options[:class], :data => { :index => options[:index] }) do
    concat builder.hidden_field(:type, :value => field.type.demodulize, :id => nil)
    
    concat (:div, form_field_icon(field, options), :class => "drag")
    
    concat (:div, capture(builder, &block), :class => "drag-area")
    
    concat link_to("Delete", '#', :class => 'delete')
  end
end

#form_field_icon(field, options) ⇒ Object



44
45
46
47
48
# File 'app/helpers/forms/forms_helper.rb', line 44

def form_field_icon(field, options)
  model_name = field.class.model_name
  icon = options[:icon] || model_name.to_s.demodulize.underscore.dasherize
  image_tag("wheelhouse-forms/#{icon}.png", :alt => model_name.human, :title => model_name.human)
end

#render_fields(fields, prefix) ⇒ Object



32
33
34
35
36
# File 'app/helpers/forms/forms_helper.rb', line 32

def render_fields(fields, prefix)
  fields.map_with_index do |field, index|
    render(:partial => field.class.partial, :object => field, :locals => { :index => index, :prefix => "#{prefix}[#{index}]" })
  end.join("\n").html_safe
end