Sha256: 0bbc0274bfee4e8d7492fde01ddad62d90adca45f224c17e61ee97121026c10b

Contents?: true

Size: 1.46 KB

Versions: 1

Compression:

Stored size: 1.46 KB

Contents

module FormtasticBootstrap
  module Inputs
    module Base
      module Wrapping

        include Formtastic::Inputs::Base::Wrapping

        def bootstrap_wrapping(&block)
          control_group_wrapping do
            control_label_html <<
            controls_wrapping do
              if options[:prepend]
                prepended_input_wrapping do
                  [template.content_tag(:span, options[:prepend], :class => 'add-on'), yield, hint_html].join("\n").html_safe
                end
              else
                [yield, hint_html].join("\n").html_safe
              end
            end
          end
        end

        def control_group_wrapping(&block)
          template.content_tag(:div, 
          [template.capture(&block), error_html].join("\n").html_safe, 
            wrapper_html_options
          )
        end

        def controls_wrapping(&block)
          template.content_tag(:div, template.capture(&block).html_safe, controls_wrapper_html_options)
        end
        
        def controls_wrapper_html_options
          {
            :class => "controls"
          }
        end

        def wrapper_html_options
          super.tap do |options|
            options[:class] << " control-group"
          end
        end
        
        # Bootstrap prepend feature
        def prepended_input_wrapping(&block)
          template.content_tag(:div, :class => 'input-prepend') do
            yield
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
formtastic-bootstrap-2.0.0 lib/formtastic-bootstrap/inputs/base/wrapping.rb