Sha256: 915da18da5f237a70c1e30594403614899738417dd56fec72f988b3b5a1cc8eb

Contents?: true

Size: 1.32 KB

Versions: 12

Compression:

Stored size: 1.32 KB

Contents

class MiscFormBuilder < Formtastic::SemanticFormBuilder
  
  @@all_fields_required_by_default = false
  
  def foldable_inputs(*args, &block)
    opts = args.extract_options!
    
    unfolded = !(opts[:class] || '').index('off').nil? || @object.new_record? || !@object.errors.empty?
    
    opts[:class] = (opts[:class] || '') + " inputs foldable #{'folded' unless unfolded}"
    args.push(opts)
    self.inputs(*args, &block)
  end
  
  def custom_input(name, options = {}, &block)
    default_options = { :css => '', :with_label => true, :label => nil }
    options = default_options.merge(options)
    
    html = options[:with_label] ? self.label(options[:label] || name) : ''
    html += template.capture(&block) || ''
    html += inline_hints_for(name, options) || ''
    html += self.errors_on(name) || ''

    template.content_tag(:li, template.find_and_preserve(html), :class => "#{options[:css]} #{'error' unless @object.errors[name].empty?}")
  end
  
  def inline_errors_on(method, options = nil)
    if render_inline_errors?
      errors = @object.errors[method.to_sym]
      template.content_tag(:span, [*errors].to_sentence.untaint, :class => 'inline-errors') if errors.present?
    else
      nil
    end
  end
  
  def normalize_model_name(name)
    if name =~ /(.+)\/(.+)/
      [$1, $2]
    else
      super
    end
  end
  
  
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
locomotive_cms-0.0.3.3 lib/misc_form_builder.rb
locomotive_cms-0.0.3.1 lib/misc_form_builder.rb
locomotive_cms-0.0.2.9 lib/misc_form_builder.rb
locomotive_cms-0.0.2.8 lib/misc_form_builder.rb
locomotive_cms-0.0.2.7 lib/misc_form_builder.rb
locomotive_cms-0.0.2.6 lib/misc_form_builder.rb
locomotive_cms-0.0.2.5 lib/misc_form_builder.rb
locomotive_cms-0.0.2.4 lib/misc_form_builder.rb
locomotive_cms-0.0.2.3 lib/misc_form_builder.rb
locomotive_cms-0.0.2.2 lib/misc_form_builder.rb
locomotive_cms-0.0.2.1 lib/misc_form_builder.rb
locomotive_cms-0.0.2 lib/misc_form_builder.rb