Sha256: 783eb288c442aaf1be981f8093cf87d7d556eef32a0b26a57488ee495769685b

Contents?: true

Size: 1.32 KB

Versions: 1

Compression:

Stored size: 1.32 KB

Contents

# encoding: utf-8
module DynamicFieldsForHelper

  def link_to_add_fields(form, association, name=nil, css_classes=nil, &block)
    new_object = form.object.send(association).klass.new
    id = new_object.object_id
    fields = form.fields_for(association, new_object, child_index: id) do |builder|
      render("#{form.object.class.name.downcase.pluralize}/#{association.to_s.singularize}_fields", fields: builder)
    end
    css_classes = css_classes(DynamicFieldsForRails.add_css_classes, css_classes)
    if block_given?
    	link_to('#', class: css_classes, data: {id: id, fields: fields.gsub("\n", "")}, &block)
    else
    	link_to(name, '#', class: css_classes, data: {id: id, fields: fields.gsub("\n", "")})
  	end
  end

  def link_to_delete_fields(fields, name=nil, css_classes=nil, &block)
    link = []
    link << fields.hidden_field(:_destroy)
    css_classes = css_classes(DynamicFieldsForRails.delete_css_classes, css_classes)
    if block_given?
      link << link_to('#', class: css_classes, title: name, &block)
    else
      link << link_to(name, '#', class: css_classes)
    end
    return link.join('').html_safe
  end

  protected

  def css_classes(default, css_class)
    style_class = []
    style_class << default unless default.blank?
    style_class << css_class unless css_class.blank?
    style_class.join(' ')
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dynamic_fields_for_rails-0.3.0 app/helpers/dynamic_fields_for_helper.rb