formtastic_rebootstrap 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/LICENSE.txt +20 -0
  4. data/README.md +200 -0
  5. data/VERSION +1 -0
  6. data/lib/action_view/helpers/text_field_date_helper.rb +166 -0
  7. data/lib/formtastic_rebootstrap/actions/base.rb +27 -0
  8. data/lib/formtastic_rebootstrap/actions/button_action.rb +13 -0
  9. data/lib/formtastic_rebootstrap/actions/input_action.rb +13 -0
  10. data/lib/formtastic_rebootstrap/actions/link_action.rb +12 -0
  11. data/lib/formtastic_rebootstrap/actions.rb +10 -0
  12. data/lib/formtastic_rebootstrap/engine.rb +4 -0
  13. data/lib/formtastic_rebootstrap/form_builder.rb +45 -0
  14. data/lib/formtastic_rebootstrap/helpers/actions_helper.rb +24 -0
  15. data/lib/formtastic_rebootstrap/helpers/errors_helper.rb +70 -0
  16. data/lib/formtastic_rebootstrap/helpers/fieldset_wrapper.rb +35 -0
  17. data/lib/formtastic_rebootstrap/helpers/inputs_helper.rb +34 -0
  18. data/lib/formtastic_rebootstrap/helpers.rb +19 -0
  19. data/lib/formtastic_rebootstrap/inputs/base/choices.rb +20 -0
  20. data/lib/formtastic_rebootstrap/inputs/base/collections.rb +9 -0
  21. data/lib/formtastic_rebootstrap/inputs/base/datetime_pickerish.rb +10 -0
  22. data/lib/formtastic_rebootstrap/inputs/base/errors.rb +48 -0
  23. data/lib/formtastic_rebootstrap/inputs/base/hints.rb +27 -0
  24. data/lib/formtastic_rebootstrap/inputs/base/html.rb +36 -0
  25. data/lib/formtastic_rebootstrap/inputs/base/labelling.rb +40 -0
  26. data/lib/formtastic_rebootstrap/inputs/base/numeric.rb +9 -0
  27. data/lib/formtastic_rebootstrap/inputs/base/placeholder.rb +9 -0
  28. data/lib/formtastic_rebootstrap/inputs/base/stringish.rb +17 -0
  29. data/lib/formtastic_rebootstrap/inputs/base/timeish.rb +71 -0
  30. data/lib/formtastic_rebootstrap/inputs/base/wrapping.rb +83 -0
  31. data/lib/formtastic_rebootstrap/inputs/base.rb +45 -0
  32. data/lib/formtastic_rebootstrap/inputs/boolean_input.rb +51 -0
  33. data/lib/formtastic_rebootstrap/inputs/check_boxes_input.rb +41 -0
  34. data/lib/formtastic_rebootstrap/inputs/color_input.rb +15 -0
  35. data/lib/formtastic_rebootstrap/inputs/country_input.rb +14 -0
  36. data/lib/formtastic_rebootstrap/inputs/date_input.rb +10 -0
  37. data/lib/formtastic_rebootstrap/inputs/date_picker_input.rb +9 -0
  38. data/lib/formtastic_rebootstrap/inputs/date_select_input.rb +14 -0
  39. data/lib/formtastic_rebootstrap/inputs/datetime_input.rb +10 -0
  40. data/lib/formtastic_rebootstrap/inputs/datetime_picker_input.rb +9 -0
  41. data/lib/formtastic_rebootstrap/inputs/datetime_select_input.rb +8 -0
  42. data/lib/formtastic_rebootstrap/inputs/email_input.rb +15 -0
  43. data/lib/formtastic_rebootstrap/inputs/file_input.rb +14 -0
  44. data/lib/formtastic_rebootstrap/inputs/hidden_input.rb +12 -0
  45. data/lib/formtastic_rebootstrap/inputs/number_input.rb +15 -0
  46. data/lib/formtastic_rebootstrap/inputs/password_input.rb +15 -0
  47. data/lib/formtastic_rebootstrap/inputs/phone_input.rb +15 -0
  48. data/lib/formtastic_rebootstrap/inputs/radio_input.rb +47 -0
  49. data/lib/formtastic_rebootstrap/inputs/range_input.rb +15 -0
  50. data/lib/formtastic_rebootstrap/inputs/search_input.rb +15 -0
  51. data/lib/formtastic_rebootstrap/inputs/select_input.rb +16 -0
  52. data/lib/formtastic_rebootstrap/inputs/string_input.rb +8 -0
  53. data/lib/formtastic_rebootstrap/inputs/text_input.rb +14 -0
  54. data/lib/formtastic_rebootstrap/inputs/time_input.rb +10 -0
  55. data/lib/formtastic_rebootstrap/inputs/time_select_input.rb +14 -0
  56. data/lib/formtastic_rebootstrap/inputs/time_zone_input.rb +14 -0
  57. data/lib/formtastic_rebootstrap/inputs/url_input.rb +14 -0
  58. data/lib/formtastic_rebootstrap/inputs.rb +38 -0
  59. data/lib/formtastic_rebootstrap/version.rb +3 -0
  60. data/lib/formtastic_rebootstrap.rb +23 -0
  61. data/vendor/assets/stylesheets/formtastic_rebootstrap.css +7 -0
  62. metadata +218 -0
@@ -0,0 +1,34 @@
1
+ module FormtasticRebootstrap
2
+ module Helpers
3
+ module InputsHelper
4
+
5
+ def inputs(*args, &block)
6
+ wrap_it = @already_in_an_inputs_block ? true : false
7
+ @already_in_an_inputs_block = true
8
+
9
+ title = field_set_title_from_args(*args)
10
+ html_options = args.extract_options!
11
+ html_options[:class] ||= "inputs"
12
+ html_options[:name] = title
13
+
14
+ out = begin
15
+ if html_options[:for] # Nested form
16
+ inputs_for_nested_attributes(*(args << html_options), &block)
17
+ elsif block_given?
18
+ field_set_and_list_wrapping(*(args << html_options), &block)
19
+ else
20
+ legend = args.shift if args.first.is_a?(::String)
21
+ args = default_columns_for_object if @object && args.empty?
22
+ contents = fieldset_contents_from_column_list(args)
23
+ args.unshift(legend) if legend.present?
24
+ field_set_and_list_wrapping(*((args << html_options) << contents))
25
+ end
26
+ end
27
+
28
+ @already_in_an_inputs_block = false
29
+ out
30
+ end
31
+
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,19 @@
1
+ module FormtasticRebootstrap
2
+ module Helpers
3
+
4
+ autoload :ActionsHelper, 'formtastic_rebootstrap/helpers/actions_helper'
5
+ autoload :ErrorsHelper, 'formtastic_rebootstrap/helpers/errors_helper'
6
+ autoload :FieldsetWrapper, 'formtastic_rebootstrap/helpers/fieldset_wrapper'
7
+ # autoload :FileColumnDetection, 'formtastic/helpers/file_column_detection'
8
+ # autoload :FormHelper, 'formtastic/helpers/form_helper'
9
+ autoload :InputsHelper, 'formtastic_rebootstrap/helpers/inputs_helper'
10
+ # autoload :LabelHelper, 'formtastic/helpers/label_helper'
11
+ # autoload :SemanticFormHelper, 'formtastic/helpers/semantic_form_helper'
12
+ # autoload :Reflection, 'formtastic/helpers/reflection'
13
+
14
+ def self.bootstrap_layout_classes_regex
15
+ /^col-(sm|md|lg|xl)?-?[0-9]{1,2}/
16
+ end
17
+ end
18
+ end
19
+
@@ -0,0 +1,20 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ module Base
4
+ module Choices
5
+ include Formtastic::Inputs::Base::Choices
6
+
7
+ def choice_wrapping_html_options(choice)
8
+ super(choice).tap do |options|
9
+ options[:for] = choice_input_dom_id(choice)
10
+ end
11
+ end
12
+
13
+ def choice_label_html_options(choice)
14
+ choice_wrapping_html_options(choice)
15
+ end
16
+
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,9 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ module Base
4
+ module Collections
5
+ include Formtastic::Inputs::Base::Collections
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ module Base
4
+ module DatetimePickerish
5
+ include Base::Placeholder
6
+ include Formtastic::Inputs::Base::DatetimePickerish
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,48 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ module Base
4
+ module Errors
5
+
6
+ include Formtastic::Inputs::Base::Errors
7
+
8
+ def error_html(inline_or_block = :inline)
9
+ errors? ? send(:"error_#{builder.inline_errors}_html", inline_or_block) : ""
10
+ end
11
+
12
+ def error_sentence_html(inline_or_block)
13
+ error_class = if inline_or_block == :inline
14
+ options[:error_class] || builder.default_inline_error_class
15
+ else
16
+ options[:error_class] || builder.default_block_error_class
17
+ end
18
+ template.content_tag(:span, Formtastic::Util.html_safe(errors.to_sentence.html_safe), :class => error_class)
19
+ end
20
+
21
+ def error_list_html(ignore)
22
+ super()
23
+ # error_class = options[:error_class] || builder.default_error_list_class
24
+ # list_elements = []
25
+ # errors.each do |error|
26
+ # list_elements << template.content_tag(:li, Formtastic::Util.html_safe(error.html_safe))
27
+ # end
28
+ # template.content_tag(:ul, Formtastic::Util.html_safe(list_elements.join("\n")), :class => error_class)
29
+ end
30
+
31
+ def error_first_html(inline_or_block = :inline)
32
+ error_class = if inline_or_block == :inline
33
+ options[:error_class] || builder.default_inline_error_class
34
+ else
35
+ options[:error_class] || builder.default_block_error_class
36
+ end
37
+ template.content_tag(:span, Formtastic::Util.html_safe(errors.first.untaint), :class => error_class)
38
+ end
39
+
40
+ def error_none_html(ignore)
41
+ # super
42
+ ""
43
+ end
44
+
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,27 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ module Base
4
+ module Hints
5
+
6
+ include Formtastic::Inputs::Base::Hints
7
+
8
+ def hint_html(inline_or_block = :block)
9
+ if hint?
10
+ hint_class = if inline_or_block == :inline
11
+ options[:hint_class] || builder.default_inline_hint_class
12
+ else
13
+ options[:hint_class] || builder.default_block_hint_class
14
+ end
15
+ template.content_tag(
16
+ :span,
17
+ Formtastic::Util.html_safe(hint_text),
18
+ :class => hint_class
19
+ )
20
+ end
21
+ end
22
+
23
+ end
24
+ end
25
+ end
26
+ end
27
+
@@ -0,0 +1,36 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ module Base
4
+ module Html
5
+
6
+ include Formtastic::Inputs::Base::Html
7
+
8
+ def form_control_input_html_options
9
+ new_classes = input_class_without_col&.compact&.join(" ")
10
+ input_html_options.merge(:class => new_classes)
11
+ end
12
+
13
+ def original_classes
14
+ input_html_options[:class]&.split(' ')&.flatten
15
+ end
16
+
17
+ def input_class_without_col
18
+ ['form-control'] << original_classes&.reject do |c|
19
+ c.match(/^col-(sm|md|lg|xl)?-?[0-9]{1,2}/)
20
+ end&.join(' ')
21
+ end
22
+
23
+ def input_html_options
24
+ if errors?
25
+ {
26
+ :class => "error"
27
+ }.merge(super)
28
+ else
29
+ super
30
+ end
31
+ end
32
+
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,40 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ module Base
4
+ module Labelling
5
+
6
+ include Formtastic::Inputs::Base::Labelling
7
+
8
+ def label_html_options
9
+ super.tap do |options|
10
+ # Bootstrap defines class 'label' too, so remove the
11
+ # one that gets created by Formtastic.
12
+ options[:class] = options[:class].reject { |c| c == 'label' }
13
+ options[:class] << "control-label"
14
+ end
15
+ end
16
+
17
+ # def control_label_html
18
+ def label_html
19
+ if render_label?
20
+ template.content_tag(:span, :class => label_class_with_col) do
21
+ builder.label(input_name, label_text, label_html_options)
22
+ end
23
+ else
24
+ "".html_safe
25
+ end
26
+ end
27
+
28
+ def layout_classes
29
+
30
+ end
31
+
32
+ def label_class_with_col
33
+ ['col-md-3 form-label col-form-label'] << options.dig(:label_html, :class)&.split(' ')&.select do |c|
34
+ c.match(/^col-(sm|md|lg|xl)?-?[0-9]{1,2}/)
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,9 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ module Base
4
+ module Numeric
5
+ include Formtastic::Inputs::Base::Numeric
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ module Base
4
+ module Placeholder
5
+ include Formtastic::Inputs::Base::Placeholder
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,17 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ module Base
4
+ module Stringish
5
+
6
+ include Formtastic::Inputs::Base::Stringish
7
+
8
+ def to_html
9
+ bootstrap_wrapping do
10
+ builder.text_field(method, form_control_input_html_options)
11
+ end
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,71 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ module Base
4
+ module Timeish
5
+ FRAGMENT_CLASSES = {
6
+ :year => "col-xs-2",
7
+ :month => "col-xs-3",
8
+ :day => "col-xs-1",
9
+ :hour => "col-xs-offset-3 col-xs-1",
10
+ :minute => "col-xs-1",
11
+ :second => "col-xs-1"
12
+ }
13
+
14
+ FRAGMENT_PLACEHOLDERS = {
15
+ :year => nil,
16
+ :month => nil,
17
+ :day => nil,
18
+ :hour => nil,
19
+ :minute => nil,
20
+ :second => nil
21
+ }
22
+
23
+ def to_html
24
+ bootstrap_wrapping do
25
+ hidden_fragments <<
26
+ row_wrapping do
27
+ fragments.map do |fragment|
28
+ fragment_html(fragment.to_sym)
29
+ end.join.html_safe
30
+ end
31
+ end
32
+ end
33
+
34
+ def row_wrapping(&block)
35
+ template.content_tag(:div,
36
+ template.capture(&block).html_safe,
37
+ :class => 'row md-pl-3'
38
+ )
39
+ end
40
+
41
+ def fragment_html(fragment)
42
+ template.content_tag(:div, :class => fragment_class(fragment)) do
43
+ opts = input_options.merge(:prefix => fragment_prefix, :field_name => fragment_name(fragment), :default => value, :include_blank => include_blank?)
44
+ template.send(:"select_#{fragment}", value, opts, fragment_input_html_options(fragment))
45
+ end
46
+ end
47
+
48
+ def fragment_input_html_options(fragment)
49
+ input_html_options.tap do |options|
50
+ options[:id] = fragment_id(fragment)
51
+
52
+ options[:class] = ((options[:class] || "").split.flatten.reject do |c|
53
+ c.match(Helpers.bootstrap_layout_classes_regex)
54
+ end << "form-control").join(" ")
55
+
56
+ options[:placeholder] = fragment_placeholder(fragment)
57
+ end
58
+ end
59
+
60
+ def fragment_class(fragment)
61
+ (options[:fragment_classes] || self.class::FRAGMENT_CLASSES)[fragment.to_sym]
62
+ end
63
+
64
+ def fragment_placeholder(fragment)
65
+ (options[:fragment_placeholders] || self.class::FRAGMENT_PLACEHOLDERS)[fragment.to_sym]
66
+ end
67
+
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,83 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ module Base
4
+ module Wrapping
5
+
6
+ include Formtastic::Inputs::Base::Wrapping
7
+
8
+ def bootstrap_wrapping(&block)
9
+ form_group_wrapping do
10
+ label_html <<
11
+ template.content_tag(:span, :class => wrapping_class_with_col&.uniq&.join(' ')) do
12
+ input_content(&block) <<
13
+ hint_html(:block) <<
14
+ error_html(:block)
15
+ end
16
+ end
17
+ end
18
+
19
+ def input_options_classes
20
+ options.dig(:input_html, :class)&.split(' ')&.flatten
21
+ end
22
+
23
+ def input_default_col
24
+ 'col-md-9'
25
+ end
26
+
27
+ def wrapping_class_with_col
28
+ return ['form-wrapper'] << input_default_col unless input_options_classes
29
+ options[:input_html][:class] = options.dig(:input_html, :class)&.split(' ')
30
+ ['form-wrapper'] << input_options_classes&.select do |c|
31
+ c.match(/^col-(sm|md|lg|xl)?-?[0-9]{1,2}/)
32
+ end
33
+ end
34
+
35
+ def input_content(&block)
36
+ content = [
37
+ add_on_content(options[:prepend]),
38
+ options[:prepend_content],
39
+ yield,
40
+ add_on_content(options[:append]),
41
+ options[:append_content]
42
+ ].compact.join("\n").html_safe
43
+
44
+ if prepended_or_appended?(options)
45
+ template.content_tag(:div, content, :class => add_on_wrapper_classes(options).join(" "))
46
+ else
47
+ content
48
+ end
49
+ end
50
+
51
+ def prepended_or_appended?(options)
52
+ options[:prepend] || options[:prepend_content] || options[:append] || options[:append_content]
53
+ end
54
+
55
+ def add_on_content(content)
56
+ return nil unless content
57
+ template.content_tag(:span, content, :class => 'input-group-addon')
58
+ end
59
+
60
+ def form_group_wrapping(&block)
61
+ template.content_tag(:div,
62
+ template.capture(&block).html_safe,
63
+ wrapper_html_options
64
+ )
65
+ end
66
+
67
+ def wrapper_html_options
68
+ super.tap do |options|
69
+ options[:class] << " form-group form-row"
70
+ options[:class] << " has-error" if errors?
71
+ end
72
+ end
73
+
74
+ def add_on_wrapper_classes(options)
75
+ [:prepend, :append, :prepend_content, :append_content].find do |key|
76
+ options.has_key?(key)
77
+ end ? ['input-group'] : []
78
+ end
79
+
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,45 @@
1
+ require "formtastic_rebootstrap/inputs/base/errors"
2
+ require "formtastic_rebootstrap/inputs/base/hints"
3
+ require "formtastic_rebootstrap/inputs/base/html"
4
+ require "formtastic_rebootstrap/inputs/base/labelling"
5
+
6
+ module FormtasticRebootstrap
7
+ module Inputs
8
+ module Base
9
+ extend ActiveSupport::Autoload
10
+
11
+ autoload :DatetimePickerish, "formtastic_rebootstrap/inputs/base/datetime_pickerish"
12
+ # autoload :Associations
13
+ autoload :Collections, "formtastic_rebootstrap/inputs/base/collections"
14
+ autoload :Choices, "formtastic_rebootstrap/inputs/base/choices"
15
+ # autoload :Database
16
+ # autoload :Errors
17
+ # autoload :Fileish
18
+ # autoload :Hints
19
+ # autoload :Html
20
+ # autoload :Labelling
21
+ # autoload :Naming
22
+ autoload :Numeric, "formtastic_rebootstrap/inputs/base/numeric"
23
+ # autoload :Options
24
+ autoload :Placeholder, "formtastic_rebootstrap/inputs/base/placeholder"
25
+ autoload :Stringish, "formtastic_rebootstrap/inputs/base/stringish"
26
+ autoload :Timeish, "formtastic_rebootstrap/inputs/base/timeish"
27
+ # autoload :Validations
28
+ autoload :Wrapping, "formtastic_rebootstrap/inputs/base/wrapping"
29
+
30
+ include Html
31
+ # include Options
32
+ # include Database
33
+ # include Database
34
+ include Errors
35
+ include Hints
36
+ # include Naming
37
+ # include Validations
38
+ # include Fileish
39
+ # include Associations
40
+ include Labelling
41
+ include Wrapping
42
+
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,51 @@
1
+ # TODO See if this can be refactored to make use of some of the Choices code.
2
+ module FormtasticRebootstrap
3
+ module Inputs
4
+ class BooleanInput < Formtastic::Inputs::BooleanInput
5
+ include Base
6
+
7
+ # Skip rendering of .form-label in #bootstrap_wrapping
8
+ def render_label?
9
+ true
10
+ end
11
+
12
+ def to_html
13
+ bootstrap_wrapping do
14
+ hidden_field_html <<
15
+ check_box_html
16
+ end
17
+ end
18
+
19
+ def hidden_field_html
20
+ template.hidden_field_tag(
21
+ input_html_options[:name],
22
+ unchecked_value,
23
+ :id => nil,
24
+ :disabled => input_html_options[:disabled]
25
+ )
26
+ end
27
+
28
+ def label_with_nested_checkbox
29
+ builder.label(
30
+ method,
31
+ label_text_with_embedded_checkbox,
32
+ label_html_options
33
+ )
34
+ end
35
+
36
+ def checkbox_wrapping(&block)
37
+ template.content_tag(:div,
38
+ template.capture(&block).html_safe,
39
+ wrapper_html_options
40
+ )
41
+ end
42
+
43
+ def wrapper_html_options
44
+ super.tap do |options|
45
+ options[:class] = (options[:class].split + ["checkbox"]).join(" ")
46
+ end
47
+ end
48
+
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,41 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ class CheckBoxesInput < Formtastic::Inputs::CheckBoxesInput
4
+ include Base
5
+ include Base::Choices
6
+
7
+ # TODO Make sure help blocks work correctly.
8
+
9
+ def to_html
10
+ bootstrap_wrapping do
11
+ hidden_field_for_all << # Might need to remove this guy.
12
+ collection.map { |choice|
13
+ choice_html(choice)
14
+ }.join("\n").html_safe
15
+ end
16
+ end
17
+
18
+ def choice_html(choice)
19
+ checkbox_wrapping do
20
+ template.content_tag(:label,
21
+ hidden_fields? ?
22
+ check_box_with_hidden_input(choice) :
23
+ check_box_without_hidden_input(choice) <<
24
+ choice_label(choice),
25
+ label_html_options.merge(choice_label_html_options(choice))
26
+ )
27
+ end
28
+ end
29
+
30
+ def checkbox_wrapping(&block)
31
+ class_name = "checkbox"
32
+ class_name += " checkbox-inline" if options[:inline]
33
+ template.content_tag(:div,
34
+ template.capture(&block).html_safe,
35
+ :class => class_name
36
+ )
37
+ end
38
+
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,15 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ class ColorInput < Formtastic::Inputs::ColorInput
4
+ include Base
5
+ include Base::Stringish
6
+
7
+ def to_html
8
+ raise "The :color input requires the color_field form helper, which is only available in Rails 4+" unless builder.respond_to?(:color_field)
9
+ bootstrap_wrapping do
10
+ builder.color_field(method, form_control_input_html_options)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ class CountryInput < Formtastic::Inputs::CountryInput
4
+ include Base
5
+
6
+ def to_html
7
+ bootstrap_wrapping do
8
+ builder.country_select(method, priority_countries, input_options, form_control_input_html_options)
9
+ end
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ class DateInput < FormtasticRebootstrap::Inputs::DateSelectInput
4
+ def to_html
5
+ ::ActiveSupport::Deprecation.warn("DateInput (:as => :date) has been renamed to DateSelectInput (:as => :date_select) and will be removed or changed in the next version of Formtastic, please update your forms.", caller(2))
6
+ super
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ class DatePickerInput < Formtastic::Inputs::DatePickerInput
4
+ include Base
5
+ include Base::Stringish
6
+ include Base::DatetimePickerish
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,14 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ class DateSelectInput < Formtastic::Inputs::DateSelectInput
4
+ FRAGMENT_CLASSES = {
5
+ :year => "col-xs-4",
6
+ :month => "col-xs-5",
7
+ :day => "col-xs-3"
8
+ }
9
+
10
+ include Base
11
+ include Base::Timeish
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ class DatetimeInput < FormtasticRebootstrap::Inputs::DatetimeSelectInput
4
+ def to_html
5
+ ::ActiveSupport::Deprecation.warn("DatetimeInput (:as => :datetime) has been renamed to DatetimeSelectInput (:as => :datetime_select) and will be removed or changed in the next version of Formtastic, please update your forms.", caller(2))
6
+ super
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ module FormtasticRebootstrap
2
+ module Inputs
3
+ class DatetimePickerInput < Formtastic::Inputs::DatetimePickerInput
4
+ include Base
5
+ include Base::Stringish
6
+ include Base::DatetimePickerish
7
+ end
8
+ end
9
+ end