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.
98 lines
2.8 KiB
98 lines
2.8 KiB
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
|
|
|