You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.8 KiB
99 lines
2.8 KiB
11 years ago
|
require 'simple_form/components/labeled_input'
|
||
|
|
||
|
# http://stackoverflow.com/questions/14972253/simpleform-default-input-class
|
||
|
# https://github.com/plataformatec/simple_form/issues/316
|
||
|
|
||
|
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
|
||
|
|
||
|
# Use this setup block to configure all options available in SimpleForm.
|
||
|
SimpleForm.setup do |config|
|
||
|
config.boolean_style = :nested
|
||
|
|
||
|
config.wrappers :bootstrap3, tag: 'div', class: 'form-group', error_class: 'has-error',
|
||
|
defaults: { input_html: { class: 'default_class' } } do |b|
|
||
|
|
||
|
b.use :html5
|
||
|
|
||
|
b.use :min_max
|
||
|
b.use :maxlength
|
||
|
b.use :placeholder
|
||
|
b.optional :pattern
|
||
|
b.optional :readonly
|
||
|
|
||
|
b.use :label_input
|
||
|
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
||
|
b.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
|
||
|
end
|
||
|
|
||
|
config.wrappers :inlabel, tag: 'div', class: 'form-group', error_class: 'has-error',
|
||
|
defaults: { input_html: { class: 'default_class' } } do |b|
|
||
|
|
||
|
b.use :html5
|
||
|
|
||
|
b.use :min_max
|
||
|
b.use :maxlength
|
||
|
b.use :placeholder
|
||
|
b.optional :pattern
|
||
|
b.optional :readonly
|
||
|
|
||
|
b.use :labeled_input
|
||
|
b.use :input
|
||
|
b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
||
|
b.use :error, wrap_with: { tag: 'span', class: 'help-inline' }
|
||
|
end
|
||
|
|
||
|
config.wrappers :prepend, tag: 'div', class: "form-group", error_class: 'error' do |b|
|
||
|
b.use :html5
|
||
|
b.use :placeholder
|
||
|
b.use :label
|
||
|
b.wrapper tag: 'div', class: 'controls' 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: "control-group", error_class: 'error' do |b|
|
||
|
b.use :html5
|
||
|
b.use :placeholder
|
||
|
b.use :label
|
||
|
b.wrapper tag: 'div', class: 'controls' 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
|
||
|
|
||
|
# Wrappers for forms and inputs using the Twitter 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 = :bootstrap3
|
||
|
end
|