config/initializers/simple_form_bootstrap.rb in msip-2.2.0.alfa3 vs config/initializers/simple_form_bootstrap.rb in msip-2.2.0.beta1
- old
+ new
@@ -13,17 +13,17 @@
# Dir[Rails.root.join('lib/components/**/*.rb')].each { |f| require f }
# Use this setup block to configure all options available in SimpleForm.
SimpleForm.setup do |config|
# Default class for buttons
- config.button_class = 'btn'
+ config.button_class = "btn"
# Define the default class of the input wrapper of the boolean input.
- config.boolean_label_class = 'form-check-label'
+ config.boolean_label_class = "form-check-label"
# How the label text should be generated altogether with the required text.
- config.label_text = lambda { |label, required, explicit_label| "#{label} #{required}" }
+ config.label_text = lambda { |label, required, _explicit_label| "#{label} #{required}" }
# Define the way to render check boxes / radio buttons with labels.
config.boolean_style = :inline
# You can wrap each item in a collection of radio/check boxes with a tag
@@ -32,337 +32,476 @@
# Defines if the default input wrapper class should be included in radio
# collection wrappers.
config.include_default_input_wrapper_class = false
# CSS class to add for error notification helper.
- config.error_notification_class = 'alert alert-danger'
+ config.error_notification_class = "alert alert-danger"
# Method used to tidy up errors. Specify any Rails Array method.
# :first lists the first message for each field.
# :to_sentence to list all errors for each field.
config.error_method = :to_sentence
# add validation classes to `input_field`
- config.input_field_error_class = 'is-invalid'
- config.input_field_valid_class = ''
+ config.input_field_error_class = "is-invalid"
+ config.input_field_valid_class = ""
-
# vertical forms
#
# vertical default_wrapper
- config.wrappers :vertical_form, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.use :placeholder
- b.optional :maxlength
- b.optional :minlength
- b.optional :pattern
- b.optional :min_max
- b.optional :readonly
- b.use :label
- b.use :input, class: 'form-control', error_class: 'is-invalid', valid_class: ''
- b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
- b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :vertical_form,
+ tag: "div",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.use(:placeholder)
+ b.optional(:maxlength)
+ b.optional(:minlength)
+ b.optional(:pattern)
+ b.optional(:min_max)
+ b.optional(:readonly)
+ b.use(:label)
+ b.use(:input, class: "form-control", error_class: "is-invalid", valid_class: "")
+ b.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback" })
+ b.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
# vertical input for boolean
- config.wrappers :vertical_boolean, tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.wrapper :form_check_wrapper, tag: 'div', class: 'form-check' do |bb|
- bb.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: ''
- bb.use :label, class: 'form-check-label'
- bb.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
- bb.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :vertical_boolean,
+ tag: "fieldset",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.wrapper(:form_check_wrapper, tag: "div", class: "form-check") do |bb|
+ bb.use(:input, class: "form-check-input", error_class: "is-invalid", valid_class: "")
+ bb.use(:label, class: "form-check-label")
+ bb.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback" })
+ bb.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
end
# vertical input for radio buttons and check boxes
- config.wrappers :vertical_collection, item_wrapper_class: 'form-check', item_label_class: 'form-check-label', tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.wrapper :legend_tag, tag: 'legend', class: 'col-form-label pt-0' do |ba|
- ba.use :label_text
+ config.wrappers(
+ :vertical_collection,
+ item_wrapper_class: "form-check",
+ item_label_class: "form-check-label",
+ tag: "fieldset",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.wrapper(:legend_tag, tag: "legend", class: "col-form-label pt-0") do |ba|
+ ba.use(:label_text)
end
- b.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: ''
- b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ b.use(:input, class: "form-check-input", error_class: "is-invalid", valid_class: "")
+ b.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ b.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
# vertical input for inline radio buttons and check boxes
- config.wrappers :vertical_collection_inline, item_wrapper_class: 'form-check form-check-inline', item_label_class: 'form-check-label', tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.wrapper :legend_tag, tag: 'legend', class: 'col-form-label pt-0' do |ba|
- ba.use :label_text
+ config.wrappers(
+ :vertical_collection_inline,
+ item_wrapper_class: "form-check form-check-inline",
+ item_label_class: "form-check-label",
+ tag: "fieldset",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.wrapper(:legend_tag, tag: "legend", class: "col-form-label pt-0") do |ba|
+ ba.use(:label_text)
end
- b.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: ''
- b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ b.use(:input, class: "form-check-input", error_class: "is-invalid", valid_class: "")
+ b.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ b.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
# vertical file input
- config.wrappers :vertical_file, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.use :placeholder
- b.optional :maxlength
- b.optional :minlength
- b.optional :readonly
- b.use :label
- b.use :input, class: 'form-control-file', error_class: 'is-invalid', valid_class: ''
- b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
- b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :vertical_file,
+ tag: "div",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.use(:placeholder)
+ b.optional(:maxlength)
+ b.optional(:minlength)
+ b.optional(:readonly)
+ b.use(:label)
+ b.use(:input, class: "form-control-file", error_class: "is-invalid", valid_class: "")
+ b.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback" })
+ b.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
# vertical multi select
- config.wrappers :vertical_multi_select, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.use :label
- b.wrapper tag: 'div', class: 'd-flex flex-row justify-content-between align-items-center' do |ba|
- ba.use :input, class: 'form-control mx-1', error_class: 'is-invalid', valid_class: ''
+ config.wrappers(
+ :vertical_multi_select,
+ tag: "div",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.use(:label)
+ b.wrapper(tag: "div", class: "d-flex flex-row justify-content-between align-items-center") do |ba|
+ ba.use(:input, class: "form-control mx-1", error_class: "is-invalid", valid_class: "")
end
- b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ b.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ b.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
# vertical range input
- config.wrappers :vertical_range, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.use :placeholder
- b.optional :readonly
- b.optional :step
- b.use :label
- b.use :input, class: 'form-control-range', error_class: 'is-invalid', valid_class: ''
- b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :vertical_range,
+ tag: "div",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.use(:placeholder)
+ b.optional(:readonly)
+ b.optional(:step)
+ b.use(:label)
+ b.use(:input, class: "form-control-range", error_class: "is-invalid", valid_class: "")
+ b.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ b.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
-
# horizontal forms
#
# horizontal default_wrapper
- config.wrappers :horizontal_form, tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.use :placeholder
- b.optional :maxlength
- b.optional :minlength
- b.optional :pattern
- b.optional :min_max
- b.optional :readonly
- b.use :label, class: 'col-sm-3 col-form-label'
- b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |ba|
- ba.use :input, class: 'form-control', error_class: 'is-invalid', valid_class: ''
- ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
- ba.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :horizontal_form,
+ tag: "div",
+ class: "form-group row",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.use(:placeholder)
+ b.optional(:maxlength)
+ b.optional(:minlength)
+ b.optional(:pattern)
+ b.optional(:min_max)
+ b.optional(:readonly)
+ b.use(:label, class: "col-sm-3 col-form-label")
+ b.wrapper(:grid_wrapper, tag: "div", class: "col-sm-9") do |ba|
+ ba.use(:input, class: "form-control", error_class: "is-invalid", valid_class: "")
+ ba.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback" })
+ ba.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
end
# horizontal input for boolean
- config.wrappers :horizontal_boolean, tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.wrapper tag: 'label', class: 'col-sm-3' do |ba|
- ba.use :label_text
+ config.wrappers(
+ :horizontal_boolean,
+ tag: "div",
+ class: "form-group row",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.wrapper(tag: "label", class: "col-sm-3") do |ba|
+ ba.use(:label_text)
end
- b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |wr|
- wr.wrapper :form_check_wrapper, tag: 'div', class: 'form-check' do |bb|
- bb.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: ''
- bb.use :label, class: 'form-check-label'
- bb.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- bb.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ b.wrapper(:grid_wrapper, tag: "div", class: "col-sm-9") do |wr|
+ wr.wrapper(:form_check_wrapper, tag: "div", class: "form-check") do |bb|
+ bb.use(:input, class: "form-check-input", error_class: "is-invalid", valid_class: "")
+ bb.use(:label, class: "form-check-label")
+ bb.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ bb.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
end
end
# horizontal input for radio buttons and check boxes
- config.wrappers :horizontal_collection, item_wrapper_class: 'form-check', item_label_class: 'form-check-label', tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.use :label, class: 'col-sm-3 col-form-label pt-0'
- b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |ba|
- ba.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: ''
- ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- ba.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :horizontal_collection,
+ item_wrapper_class: "form-check",
+ item_label_class: "form-check-label",
+ tag: "div",
+ class: "form-group row",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.use(:label, class: "col-sm-3 col-form-label pt-0")
+ b.wrapper(:grid_wrapper, tag: "div", class: "col-sm-9") do |ba|
+ ba.use(:input, class: "form-check-input", error_class: "is-invalid", valid_class: "")
+ ba.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ ba.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
end
# horizontal input for inline radio buttons and check boxes
- config.wrappers :horizontal_collection_inline, item_wrapper_class: 'form-check form-check-inline', item_label_class: 'form-check-label', tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.use :label, class: 'col-sm-3 col-form-label pt-0'
- b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |ba|
- ba.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: ''
- ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- ba.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :horizontal_collection_inline,
+ item_wrapper_class: "form-check form-check-inline",
+ item_label_class: "form-check-label",
+ tag: "div",
+ class: "form-group row",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.use(:label, class: "col-sm-3 col-form-label pt-0")
+ b.wrapper(:grid_wrapper, tag: "div", class: "col-sm-9") do |ba|
+ ba.use(:input, class: "form-check-input", error_class: "is-invalid", valid_class: "")
+ ba.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ ba.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
end
# horizontal file input
- config.wrappers :horizontal_file, tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.use :placeholder
- b.optional :maxlength
- b.optional :minlength
- b.optional :readonly
- b.use :label, class: 'col-sm-3 col-form-label'
- b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |ba|
- ba.use :input, error_class: 'is-invalid', valid_class: ''
- ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- ba.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :horizontal_file,
+ tag: "div",
+ class: "form-group row",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.use(:placeholder)
+ b.optional(:maxlength)
+ b.optional(:minlength)
+ b.optional(:readonly)
+ b.use(:label, class: "col-sm-3 col-form-label")
+ b.wrapper(:grid_wrapper, tag: "div", class: "col-sm-9") do |ba|
+ ba.use(:input, error_class: "is-invalid", valid_class: "")
+ ba.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ ba.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
end
# horizontal multi select
- config.wrappers :horizontal_multi_select, tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.use :label, class: 'col-sm-3 col-form-label'
- b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |ba|
- ba.wrapper tag: 'div', class: 'd-flex flex-row justify-content-between align-items-center' do |bb|
- bb.use :input, class: 'form-control mx-1', error_class: 'is-invalid', valid_class: ''
+ config.wrappers(
+ :horizontal_multi_select,
+ tag: "div",
+ class: "form-group row",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.use(:label, class: "col-sm-3 col-form-label")
+ b.wrapper(:grid_wrapper, tag: "div", class: "col-sm-9") do |ba|
+ ba.wrapper(tag: "div", class: "d-flex flex-row justify-content-between align-items-center") do |bb|
+ bb.use(:input, class: "form-control mx-1", error_class: "is-invalid", valid_class: "")
end
- ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- ba.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ ba.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ ba.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
end
# horizontal range input
- config.wrappers :horizontal_range, tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.use :placeholder
- b.optional :readonly
- b.optional :step
- b.use :label, class: 'col-sm-3 col-form-label'
- b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |ba|
- ba.use :input, class: 'form-control-range', error_class: 'is-invalid', valid_class: ''
- ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- ba.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :horizontal_range,
+ tag: "div",
+ class: "form-group row",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.use(:placeholder)
+ b.optional(:readonly)
+ b.optional(:step)
+ b.use(:label, class: "col-sm-3 col-form-label")
+ b.wrapper(:grid_wrapper, tag: "div", class: "col-sm-9") do |ba|
+ ba.use(:input, class: "form-control-range", error_class: "is-invalid", valid_class: "")
+ ba.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ ba.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
end
-
# inline forms
#
# inline default_wrapper
- config.wrappers :inline_form, tag: 'span', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.use :placeholder
- b.optional :maxlength
- b.optional :minlength
- b.optional :pattern
- b.optional :min_max
- b.optional :readonly
- b.use :label, class: 'sr-only'
+ config.wrappers(:inline_form, tag: "span", error_class: "form-group-invalid", valid_class: "form-group-valid") do |b|
+ b.use(:html5)
+ b.use(:placeholder)
+ b.optional(:maxlength)
+ b.optional(:minlength)
+ b.optional(:pattern)
+ b.optional(:min_max)
+ b.optional(:readonly)
+ b.use(:label, class: "sr-only")
- b.use :input, class: 'form-control', error_class: 'is-invalid', valid_class: ''
- b.use :error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
- b.optional :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ b.use(:input, class: "form-control", error_class: "is-invalid", valid_class: "")
+ b.use(:error, wrap_with: { tag: "div", class: "invalid-feedback" })
+ b.optional(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
# inline input for boolean
- config.wrappers :inline_boolean, tag: 'span', class: 'form-check mb-2 mr-sm-2', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: '-valid'
- b.use :label, class: 'form-check-label'
- b.use :error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
- b.optional :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :inline_boolean,
+ tag: "span",
+ class: "form-check mb-2 mr-sm-2",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.use(:input, class: "form-check-input", error_class: "is-invalid", valid_class: "-valid")
+ b.use(:label, class: "form-check-label")
+ b.use(:error, wrap_with: { tag: "div", class: "invalid-feedback" })
+ b.optional(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
-
# bootstrap custom forms
#
# custom input for boolean
- config.wrappers :custom_boolean, tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.wrapper :form_check_wrapper, tag: 'div', class: 'custom-control custom-checkbox' do |bb|
- bb.use :input, class: 'custom-control-input', error_class: 'is-invalid', valid_class: ''
- bb.use :label, class: 'custom-control-label'
- bb.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
- bb.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :custom_boolean,
+ tag: "fieldset",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.wrapper(:form_check_wrapper, tag: "div", class: "custom-control custom-checkbox") do |bb|
+ bb.use(:input, class: "custom-control-input", error_class: "is-invalid", valid_class: "")
+ bb.use(:label, class: "custom-control-label")
+ bb.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback" })
+ bb.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
end
# custom input switch for boolean
- config.wrappers :custom_boolean_switch, tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.wrapper :form_check_wrapper, tag: 'div', class: 'custom-control custom-switch' do |bb|
- bb.use :input, class: 'custom-control-input', error_class: 'is-invalid', valid_class: ''
- bb.use :label, class: 'custom-control-label'
- bb.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
- bb.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :custom_boolean_switch,
+ tag: "fieldset",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.wrapper(:form_check_wrapper, tag: "div", class: "custom-control custom-switch") do |bb|
+ bb.use(:input, class: "custom-control-input", error_class: "is-invalid", valid_class: "")
+ bb.use(:label, class: "custom-control-label")
+ bb.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback" })
+ bb.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
end
# custom input for radio buttons and check boxes
- config.wrappers :custom_collection, item_wrapper_class: 'custom-control', item_label_class: 'custom-control-label', tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.wrapper :legend_tag, tag: 'legend', class: 'col-form-label pt-0' do |ba|
- ba.use :label_text
+ config.wrappers(
+ :custom_collection,
+ item_wrapper_class: "custom-control",
+ item_label_class: "custom-control-label",
+ tag: "fieldset",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.wrapper(:legend_tag, tag: "legend", class: "col-form-label pt-0") do |ba|
+ ba.use(:label_text)
end
- b.use :input, class: 'custom-control-input', error_class: 'is-invalid', valid_class: ''
- b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ b.use(:input, class: "custom-control-input", error_class: "is-invalid", valid_class: "")
+ b.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ b.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
# custom input for inline radio buttons and check boxes
- config.wrappers :custom_collection_inline, item_wrapper_class: 'custom-control custom-control-inline', item_label_class: 'custom-control-label', tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.wrapper :legend_tag, tag: 'legend', class: 'col-form-label pt-0' do |ba|
- ba.use :label_text
+ config.wrappers(
+ :custom_collection_inline,
+ item_wrapper_class: "custom-control custom-control-inline",
+ item_label_class: "custom-control-label",
+ tag: "fieldset",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.wrapper(:legend_tag, tag: "legend", class: "col-form-label pt-0") do |ba|
+ ba.use(:label_text)
end
- b.use :input, class: 'custom-control-input', error_class: 'is-invalid', valid_class: ''
- b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ b.use(:input, class: "custom-control-input", error_class: "is-invalid", valid_class: "")
+ b.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ b.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
# custom file input
- config.wrappers :custom_file, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.use :placeholder
- b.optional :maxlength
- b.optional :minlength
- b.optional :readonly
- b.use :label
- b.wrapper :custom_file_wrapper, tag: 'div', class: 'custom-file' do |ba|
- ba.use :input, class: 'custom-file-input', error_class: 'is-invalid', valid_class: ''
- ba.use :label, class: 'custom-file-label'
- ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
+ config.wrappers(
+ :custom_file,
+ tag: "div",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.use(:placeholder)
+ b.optional(:maxlength)
+ b.optional(:minlength)
+ b.optional(:readonly)
+ b.use(:label)
+ b.wrapper(:custom_file_wrapper, tag: "div", class: "custom-file") do |ba|
+ ba.use(:input, class: "custom-file-input", error_class: "is-invalid", valid_class: "")
+ ba.use(:label, class: "custom-file-label")
+ ba.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback" })
end
- b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ b.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
# custom multi select
- config.wrappers :custom_multi_select, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.use :label
- b.wrapper tag: 'div', class: 'd-flex flex-row justify-content-between align-items-center' do |ba|
- ba.use :input, class: 'custom-select mx-1', error_class: 'is-invalid', valid_class: ''
+ config.wrappers(
+ :custom_multi_select,
+ tag: "div",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.use(:label)
+ b.wrapper(tag: "div", class: "d-flex flex-row justify-content-between align-items-center") do |ba|
+ ba.use(:input, class: "custom-select mx-1", error_class: "is-invalid", valid_class: "")
end
- b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ b.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ b.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
# custom range input
- config.wrappers :custom_range, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.use :placeholder
- b.optional :readonly
- b.optional :step
- b.use :label
- b.use :input, class: 'custom-range', error_class: 'is-invalid', valid_class: ''
- b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
- b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :custom_range,
+ tag: "div",
+ class: "form-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.use(:placeholder)
+ b.optional(:readonly)
+ b.optional(:step)
+ b.use(:label)
+ b.use(:input, class: "custom-range", error_class: "is-invalid", valid_class: "")
+ b.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback d-block" })
+ b.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
-
# Input Group - custom component
# see example app and config at https://github.com/rafaelfranca/simple_form-bootstrap
# config.wrappers :input_group, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
# b.use :html5
# b.use :placeholder
@@ -379,52 +518,62 @@
# end
# b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
# b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
# end
-
# Floating Labels form
#
# floating labels default_wrapper
- config.wrappers :floating_labels_form, tag: 'div', class: 'form-label-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.use :placeholder
- b.optional :maxlength
- b.optional :minlength
- b.optional :pattern
- b.optional :min_max
- b.optional :readonly
- b.use :input, class: 'form-control', error_class: 'is-invalid', valid_class: ''
- b.use :label
- b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
- b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :floating_labels_form,
+ tag: "div",
+ class: "form-label-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.use(:placeholder)
+ b.optional(:maxlength)
+ b.optional(:minlength)
+ b.optional(:pattern)
+ b.optional(:min_max)
+ b.optional(:readonly)
+ b.use(:input, class: "form-control", error_class: "is-invalid", valid_class: "")
+ b.use(:label)
+ b.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback" })
+ b.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
# custom multi select
- config.wrappers :floating_labels_select, tag: 'div', class: 'form-label-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
- b.use :html5
- b.optional :readonly
- b.use :input, class: 'custom-select', error_class: 'is-invalid', valid_class: ''
- b.use :label
- b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
- b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
+ config.wrappers(
+ :floating_labels_select,
+ tag: "div",
+ class: "form-label-group",
+ error_class: "form-group-invalid",
+ valid_class: "form-group-valid",
+ ) do |b|
+ b.use(:html5)
+ b.optional(:readonly)
+ b.use(:input, class: "custom-select", error_class: "is-invalid", valid_class: "")
+ b.use(:label)
+ b.use(:full_error, wrap_with: { tag: "div", class: "invalid-feedback" })
+ b.use(:hint, wrap_with: { tag: "small", class: "form-text text-muted" })
end
-
# The default wrapper to be used by the FormBuilder.
config.default_wrapper = :vertical_form
# Custom wrappers for input types. This should be a hash containing an input
# type as key and the wrapper that will be used for all inputs with specified type.
config.wrapper_mappings = {
- boolean: :vertical_boolean,
- check_boxes: :vertical_collection,
- date: :vertical_multi_select,
- datetime: :vertical_multi_select,
- file: :vertical_file,
+ boolean: :vertical_boolean,
+ check_boxes: :vertical_collection,
+ date: :vertical_multi_select,
+ datetime: :vertical_multi_select,
+ file: :vertical_file,
radio_buttons: :vertical_collection,
- range: :vertical_range,
- time: :vertical_multi_select
+ range: :vertical_range,
+ time: :vertical_multi_select,
}
# enable custom form wrappers
# config.wrapper_mappings = {
# boolean: :custom_boolean,