Sha256: 22f356fb7f429218b0eddbc3023ab4ad710c9482330e0377708c915f87328d46

Contents?: true

Size: 1.71 KB

Versions: 13

Compression:

Stored size: 1.71 KB

Contents

module RacesHelper

  #
  # Support methods for nested forms lifted from http://transfs.com/devblog/2009/06/26/nested-forms-with-rails-2-3-helpers-and-javascript-tricks/
  #
  
  def link_to_new_nested_form(name, form_builder, method, options = {})
    klass = form_builder.object.class.reflect_on_association(method).klass
    Rails.logger.warn "!!  link_to_new_nested_form: klass is #{klass.inspect}"
    options[:object] ||= klass.new
    options[:partial] ||= method.to_s.singularize
    options[:form_builder_local] ||= :f
    options[:element_id] ||= method.to_s
    options[:position] ||= :bottom
    link_to_function name do |page|
      html = generate_nested_form(form_builder,
                    method,
                    :object => options[:object],
                    :partial => options[:partial],
                    :form_builder_local => options[:form_builder_local]
                   )
      page << %{
        $('#{options[:element_id]}').insert({ #{options[:position]}: "#{ escape_javascript html }".replace(/NEW_RECORD/g, new Date().getTime()) });
      }
    end
  end

  def generate_nested_form(form_builder, method, options = {})
    options[:object] ||= form_builder.object.class.reflect_on_association(method).klass.new
    options[:partial] ||= method.to_s.singularize
    options[:form_builder_local] ||= :f
 
    form_builder.fields_for(method, options[:object], :child_index => 'NEW_RECORD') do |f|
      render(:partial => options[:partial], :locals => { options[:form_builder_local] => f })
    end
  end

  def truncate_words(text='', length=64, omission="...")
    return '' if text.blank?
    words = text.split
    omission = '' unless words.size > length
    words[0..(length-1)].join(" ") + omission
  end 

end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
radiant-race_results-extension-1.4.6 app/helpers/races_helper.rb
radiant-race_results-extension-1.4.5 app/helpers/races_helper.rb
radiant-race_results-extension-1.4.3 app/helpers/races_helper.rb
radiant-race_results-extension-1.4.0 app/helpers/races_helper.rb
radiant-race_results-extension-1.3.6 app/helpers/races_helper.rb
radiant-race_results-extension-1.3.5 app/helpers/races_helper.rb
radiant-race_results-extension-1.3.4 app/helpers/races_helper.rb
radiant-race_results-extension-1.3.3 app/helpers/races_helper.rb
radiant-race_results-extension-1.3.2 app/helpers/races_helper.rb
radiant-race_results-extension-1.3.1 app/helpers/races_helper.rb
radiant-race_results-extension-1.3.0 app/helpers/races_helper.rb
radiant-race_results-extension-1.2.1 app/helpers/races_helper.rb
radiant-race_results-extension-1.2.0 app/helpers/races_helper.rb