Sha256: 4f1647684a6d604550ecee4e3d05bd196ce42a7c93891e9d9c88931fd1ceeb9b
Contents?: true
Size: 1.2 KB
Versions: 1
Compression:
Stored size: 1.2 KB
Contents
# frozen_string_literal: true module Phlexi module Form module Components class CollectionCheckboxes < Base include Concerns::HandlesInput include Concerns::HandlesArrayInput include Concerns::HasOptions def view_template div(**attributes.slice(:id, :class)) do field.multi(option_mapper.values) do |builder| render builder.hidden_field_tag if builder.index == 0 field = builder.field( label: option_mapper[builder.key], # We set the attributes here so they are applied to all input components even if the user decides to use a block input_attributes: { checked_value: builder.key, include_hidden: false, checked: selected?(builder.key) } ) if block_given? yield field else render field.checkbox_tag render field.label_tag end end end end protected def build_attributes super attributes[:multiple] = true end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
phlexi-form-0.3.0.rc1 | lib/phlexi/form/components/collection_checkboxes.rb |