Sha256: 58e5e87ad6b0f1b18bc82d14b603e178864b028707c869ba56bddbc15220e44b
Contents?: true
Size: 1.93 KB
Versions: 3
Compression:
Stored size: 1.93 KB
Contents
module BootstrapForm class FormBuilder < ActionView::Helpers::FormBuilder delegate :content_tag, to: :@template def initialize(object_name, object, template, options, proc) super if options.fetch(:help, '').to_sym == :block @help_tag = :p @help_css = 'help-block' else @help_tag = :span @help_css = 'help-inline' end end %w{text_field text_area password_field collection_select file_field date_select}.each do |method_name| define_method(method_name) do |name, *args| options = args.extract_options!.symbolize_keys! content_tag :div, class: "control-group#{(' error' if object.errors[name].any?)}" do label(name, options[:label], class: 'control-label') + content_tag(:div, class: 'controls') do help = object.errors[name].any? ? object.errors[name].join(', ') : options[:help] help = content_tag(@help_tag, class: @help_css) { help } if help args << options.except(:label, :help) super(name, *args) + help end end end end def check_box(name, *args) options = args.extract_options!.symbolize_keys! content_tag :div, class: "control-group#{(' error' if object.errors[name].any?)}" do content_tag(:div, class: 'controls') do args << options.except(:label, :help) html = super(name, *args) + ' ' + options[:label] label(name, html, class: 'checkbox') end end end def actions(&block) content_tag :div, class: "form-actions" do block.call end end def primary(name) submit name, class: 'btn btn-primary' end def alert_message(title, *args) options = args.extract_options! css = options[:class] || "alert alert-error" if object.errors.full_messages.any? content_tag :div, class: css do title end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
bootstrap_form-0.1.3 | lib/bootstrap_form/form_builder.rb |
bootstrap_form-0.1.2 | lib/bootstrap_form/form_builder.rb |
bootstrap_form-0.1.1 | lib/bootstrap_form/form_builder.rb |