Sha256: 546835748ad3a3f37555d836940b70a6c2363f70a87e191d14d07257f0423ade

Contents?: true

Size: 1.43 KB

Versions: 10

Compression:

Stored size: 1.43 KB

Contents

# frozen_string_literal: true

require 'action_view'

# rubocop:disable Metrics/ParameterLists

class BootstrapFormBuilder < ActionView::Helpers::FormBuilder
  attr_reader :template

  def date_field(field, **opts)
    add_css_class(opts, 'date-picker')
    text_field(field, opts)
  end

  def text_field(field, **opts)
    add_css_class(opts, 'form-control')
    super
  end

  def password_field(field, **opts)
    add_css_class(opts, 'form-control')
    super
  end

  def text_area(method, **opts)
    add_css_class(opts, 'form-control')
    super
  end

  def check_box(*)
    template.content_tag('div', class: 'checkbox') do
      template.content_tag('label') do
        template.concat(super)
        template.concat(template.capture { yield })
      end
    end
  end

  def radio_button(*)
    template.content_tag('div', class: 'radio') do
      template.content_tag('label') do
        template.concat(super)
        template.concat(template.capture { yield })
      end
    end
  end

  def select(method, choices = nil, opts = {}, html_opts = {})
    add_css_class(html_opts, 'form-control')
    super
  end

  def collection_select(method, collection, value_method, text_method,
                        opts = {}, html_opts = {})
    add_css_class(html_opts, 'form-control')
    super
  end

  private

  def add_css_class(opts, class_name)
    opts[:class] = "#{opts[:class]} #{class_name}".strip
  end
end

# rubocop:enable Metrics/ParameterLists

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
aaf-lipstick-4.4.0 lib/lipstick/helpers/bootstrap_form_builder.rb
aaf-lipstick-4.3.0 lib/lipstick/helpers/bootstrap_form_builder.rb
aaf-lipstick-4.2.0 lib/lipstick/helpers/bootstrap_form_builder.rb
aaf-lipstick-4.1.0 lib/lipstick/helpers/bootstrap_form_builder.rb
aaf-lipstick-4.0.1 lib/lipstick/helpers/bootstrap_form_builder.rb
aaf-lipstick-3.2.0 lib/lipstick/helpers/bootstrap_form_builder.rb
aaf-lipstick-3.1.0 lib/lipstick/helpers/bootstrap_form_builder.rb
aaf-lipstick-3.0.6 lib/lipstick/helpers/bootstrap_form_builder.rb
aaf-lipstick-3.0.5 lib/lipstick/helpers/bootstrap_form_builder.rb
aaf-lipstick-3.0.4 lib/lipstick/helpers/bootstrap_form_builder.rb