Skip to content

Commit

Permalink
Update simple_form_bootstrap.rb
Browse files Browse the repository at this point in the history
  • Loading branch information
ismailakbudak committed Jan 22, 2016
1 parent f01dec8 commit f437335
Showing 1 changed file with 181 additions and 44 deletions.
225 changes: 181 additions & 44 deletions templates/config/initializers/simple_form_bootstrap.rb
Original file line number Diff line number Diff line change
@@ -1,70 +1,207 @@
# Use this setup block to configure all options available in SimpleForm.
# File Path: RAILS_ROOT/config/initializers/simple_form_bootstrap.rb
SimpleForm.setup do |config|
config.wrappers :bootstrap, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
config.error_notification_class = 'alert alert-danger'
config.button_class = 'btn btn-default'
config.boolean_label_class = nil

config.wrappers :vertical_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.use :placeholder
b.optional :maxlength
b.optional :pattern
b.optional :min_max
b.optional :readonly
b.use :label, class: 'control-label'
b.use :input

b.use :input, class: 'form-control'
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end

config.wrappers :prepend, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
config.wrappers :vertical_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.use :placeholder
b.optional :maxlength
b.optional :readonly
b.use :label, class: 'control-label'
b.wrapper tag: 'div', class: 'input-group' do |input|
input.wrapper tag: 'div', class: 'input-prepend' do |prepend|
prepend.use :input
end
input.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
input.use :error, wrap_with: { tag: 'span', class: 'help-inline' }

b.use :input
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end

config.wrappers :vertical_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.optional :readonly

b.wrapper tag: 'div', class: 'checkbox checkbox-primary' do |ba|
ba.use :label_input
end

b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end

config.wrappers :vertical_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.optional :readonly
b.use :label, class: 'control-label'
b.use :input
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end

config.wrappers :horizontal_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.use :placeholder
b.optional :maxlength
b.optional :pattern
b.optional :min_max
b.optional :readonly
b.use :label, class: 'col-sm-3 control-label'

b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
ba.use :input, class: 'form-control'
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end
end

config.wrappers :append, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
config.wrappers :horizontal_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.use :placeholder
b.use :label
b.wrapper tag: 'div', class: 'input-group' do |input|
input.wrapper tag: 'div', class: 'input-append' do |append|
append.use :input
b.optional :maxlength
b.optional :readonly
b.use :label, class: 'col-sm-3 control-label'

b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
ba.use :input
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end
end

config.wrappers :horizontal_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.optional :readonly

b.wrapper tag: 'div', class: 'col-sm-offset-3 col-sm-9' do |wr|
wr.wrapper tag: 'div', class: 'checkbox' do |ba|
ba.use :label_input, class: 'col-sm-9'
end
input.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
input.use :error, wrap_with: { tag: 'span', class: 'help-inline' }

wr.use :error, wrap_with: { tag: 'span', class: 'help-block' }
wr.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end
end
config.error_notification_class = 'alert alert-danger'

# Wrappers for forms and inputs using the Twitter Bootstrap toolkit.
# Check the Bootstrap docs (http://twitter.github.com/bootstrap)
# to learn about the different styles for forms and inputs,
# buttons and other elements.
config.default_wrapper = :bootstrap
end
config.wrappers :horizontal_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.optional :readonly

b.use :label, class: 'col-sm-3 control-label'

inputs = %w[
CollectionSelectInput
DateTimeInput
FileInput
GroupedCollectionSelectInput
NumericInput
PasswordInput
RangeInput
StringInput
TextInput
]

inputs.each do |input_type|
superclass = "SimpleForm::Inputs::#{input_type}".constantize

new_class = Class.new(superclass) do
def input_html_classes
super.push('form-control')
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
ba.use :input
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end
end

Object.const_set(input_type, new_class)
end
config.wrappers :inline_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.use :placeholder
b.optional :maxlength
b.optional :pattern
b.optional :min_max
b.optional :readonly
b.use :label, class: 'sr-only'

b.use :input, class: 'form-control'
b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end

# Wrappers for forms and inputs using the Bootstrap toolkit.
# Check the Bootstrap docs (http://getbootstrap.com)
# to learn about the different styles for forms and inputs,
# buttons and other elements.
config.default_wrapper = :vertical_form
config.wrapper_mappings = {
check_boxes: :vertical_radio_and_checkboxes,
radio_buttons: :vertical_radio_and_checkboxes,
file: :vertical_file_input,
boolean: :vertical_boolean,
}
end

# # Use this setup block to configure all options available in SimpleForm.
# # File Path: RAILS_ROOT/config/initializers/simple_form_bootstrap.rb
# SimpleForm.setup do |config|
# config.wrappers :bootstrap, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
# b.use :html5
# b.use :placeholder
# b.use :label, class: 'control-label'
# b.use :input
# b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
# b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
# end
#
# config.wrappers :prepend, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
# b.use :html5
# b.use :placeholder
# b.use :label, class: 'control-label'
# b.wrapper tag: 'div', class: 'input-group' do |input|
# input.wrapper tag: 'div', class: 'input-prepend' do |prepend|
# prepend.use :input
# end
# input.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
# input.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
# end
# end
#
# config.wrappers :append, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
# b.use :html5
# b.use :placeholder
# b.use :label
# b.wrapper tag: 'div', class: 'input-group' do |input|
# input.wrapper tag: 'div', class: 'input-append' do |append|
# append.use :input
# end
# input.use :hint, wrap_with: { tag: 'span', class: 'help-block' }
# input.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
# end
# end
# config.error_notification_class = 'alert alert-danger'
#
# # Wrappers for forms and inputs using the Twitter Bootstrap toolkit.
# # Check the Bootstrap docs (http://twitter.github.com/bootstrap)
# # to learn about the different styles for forms and inputs,
# # buttons and other elements.
# config.default_wrapper = :bootstrap
# end
#
#
# inputs = %w[
# CollectionSelectInput
# DateTimeInput
# FileInput
# GroupedCollectionSelectInput
# NumericInput
# PasswordInput
# RangeInput
# StringInput
# TextInput
# ]
#
# inputs.each do |input_type|
# superclass = "SimpleForm::Inputs::#{input_type}".constantize
#
# new_class = Class.new(superclass) do
# def input_html_classes
# super.push('form-control')
# end
# end
#
# Object.const_set(input_type, new_class)
# end

0 comments on commit f437335

Please sign in to comment.