Sha256: 66323f553b51e1ab7304823798870ac494f4ba075075178e78491a0d9af3d667

Contents?: true

Size: 1016 Bytes

Versions: 3

Compression:

Stored size: 1016 Bytes

Contents

module Trestle
  class Form
    module Fields
      class CheckBox < Field
        attr_reader :checked_value, :unchecked_value

        def initialize(builder, template, name, options = {}, checked_value = "1", unchecked_value = "0")
          super(builder, template, name, options)

          @options = defaults.merge(options)
          @checked_value, @unchecked_value = checked_value, unchecked_value
        end

        def render
          field
        end

        def field
          content_tag(:div, class: options.delete(:class)) do
            content_tag(:label) do
              safe_join([
                builder.raw_check_box(name, options, checked_value, unchecked_value),
                options[:label] || admin.model.human_attribute_name(name)
              ], " ")
            end
          end
        end

        def defaults
          super.merge(class: ["checkbox"])
        end
      end
    end
  end
end

Trestle::Form::Builder.register(:check_box, Trestle::Form::Fields::CheckBox)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
trestle-0.8.3 lib/trestle/form/fields/check_box.rb
trestle-0.8.2 lib/trestle/form/fields/check_box.rb
trestle-0.8.0 lib/trestle/form/fields/check_box.rb