ui_bibz 2.0.0.alpha24 → 2.0.0.alpha26

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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTORS.md +19 -0
  3. data/Gemfile +1 -0
  4. data/Gemfile.lock +60 -55
  5. data/app/assets/javascripts/interface.coffee +11 -0
  6. data/app/assets/javascripts/ui_bibz.coffee +3 -1
  7. data/app/assets/stylesheets/table.sass +1 -2
  8. data/app/assets/stylesheets/ui_bibz.sass +2 -0
  9. data/app/inputs/custom_inputs/autocomplete_input.rb +3 -2
  10. data/app/inputs/custom_inputs/date_picker_input.rb +2 -2
  11. data/app/inputs/custom_inputs/dropdown_select_input.rb +2 -2
  12. data/app/inputs/custom_inputs/formula_input.rb +2 -2
  13. data/app/inputs/custom_inputs/markdown_editor_input.rb +2 -2
  14. data/app/inputs/custom_inputs/multi_column_input.rb +2 -2
  15. data/app/inputs/custom_inputs/multi_select_input.rb +2 -2
  16. data/app/inputs/custom_inputs/radios_input.rb +20 -0
  17. data/app/inputs/custom_inputs/surround_input.rb +2 -2
  18. data/app/inputs/custom_inputs/switch_input.rb +2 -2
  19. data/config/initializers/will_paginate.rb +79 -0
  20. data/lib/ui_bibz.rb +56 -30
  21. data/lib/ui_bibz/helpers/ui_core_helper.rb +45 -37
  22. data/lib/ui_bibz/ui/core/alert.rb +1 -2
  23. data/lib/ui_bibz/ui/core/{breadcrumb/breadcrumb.rb → breadcrumb.rb} +5 -5
  24. data/lib/ui_bibz/ui/core/cards/card.rb +6 -6
  25. data/lib/ui_bibz/ui/core/cards/components/block/card_block_link.rb +1 -1
  26. data/lib/ui_bibz/ui/core/cards/components/block/card_block_text.rb +1 -1
  27. data/lib/ui_bibz/ui/core/cards/components/block/card_block_title.rb +1 -1
  28. data/lib/ui_bibz/ui/core/cards/components/card_block.rb +4 -4
  29. data/lib/ui_bibz/ui/core/cards/components/card_footer.rb +1 -1
  30. data/lib/ui_bibz/ui/core/cards/components/card_header.rb +1 -1
  31. data/lib/ui_bibz/ui/core/cards/components/card_image.rb +1 -1
  32. data/lib/ui_bibz/ui/core/cards/components/card_list_group.rb +2 -2
  33. data/lib/ui_bibz/ui/core/component.rb +4 -51
  34. data/lib/ui_bibz/ui/core/component/glyph_extension.rb +19 -0
  35. data/lib/ui_bibz/ui/core/component/klass_extension.rb +38 -0
  36. data/lib/ui_bibz/ui/core/{dropdown → dropdowns}/components/dropdown_divider.rb +1 -1
  37. data/lib/ui_bibz/ui/core/{dropdown → dropdowns}/components/dropdown_header.rb +2 -2
  38. data/lib/ui_bibz/ui/core/{dropdown → dropdowns}/components/dropdown_link.rb +2 -2
  39. data/lib/ui_bibz/ui/core/{dropdown → dropdowns}/dropdown.rb +11 -12
  40. data/lib/ui_bibz/ui/core/{buttons/button_split_dropdown.rb → dropdowns/split_dropdown.rb} +6 -10
  41. data/lib/ui_bibz/ui/core/{buttons → forms/buttons}/button.rb +5 -5
  42. data/lib/ui_bibz/ui/core/{buttons → forms/buttons}/button_choice.rb +8 -8
  43. data/lib/ui_bibz/ui/core/{buttons → forms/buttons}/button_group.rb +5 -5
  44. data/lib/ui_bibz/ui/core/{buttons → forms/buttons}/button_link.rb +13 -9
  45. data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +98 -0
  46. data/lib/ui_bibz/ui/core/forms/choices/radio_field.rb +98 -0
  47. data/lib/ui_bibz/ui/core/{inputs → forms/choices}/switch_field.rb +3 -3
  48. data/lib/ui_bibz/ui/core/{inputs → forms/dates}/date_picker_field.rb +6 -6
  49. data/lib/ui_bibz/ui/core/{inputs → forms/numbers}/formula_field.rb +5 -5
  50. data/lib/ui_bibz/ui/core/{inputs → forms/selects}/dropdown_select_field.rb +5 -5
  51. data/lib/ui_bibz/ui/core/{inputs → forms/selects}/multi_column_field.rb +5 -5
  52. data/lib/ui_bibz/ui/core/{inputs → forms/selects}/multi_select_field.rb +8 -8
  53. data/lib/ui_bibz/ui/core/{inputs → forms/textareas}/markdown_editor_field.rb +5 -5
  54. data/lib/ui_bibz/ui/core/{inputs → forms/texts}/autocomplete_field.rb +5 -5
  55. data/lib/ui_bibz/ui/core/{inputs → forms/texts}/surround_field.rb +5 -5
  56. data/lib/ui_bibz/ui/core/glyph.rb +2 -1
  57. data/lib/ui_bibz/ui/core/{list → lists}/components/list.rb +11 -11
  58. data/lib/ui_bibz/ui/core/{list/components → lists/components/list}/list_body.rb +2 -2
  59. data/lib/ui_bibz/ui/core/{list/components → lists/components/list}/list_header.rb +2 -2
  60. data/lib/ui_bibz/ui/core/{list → lists}/list_group.rb +4 -4
  61. data/lib/ui_bibz/ui/core/navs/components/nav_dropdown.rb +1 -1
  62. data/lib/ui_bibz/ui/core/navs/components/navbar_form.rb +3 -1
  63. data/lib/ui_bibz/ui/core/paths/breadcrumb.rb +109 -0
  64. data/lib/ui_bibz/ui/core/{breadcrumb → paths}/components/breadcrumb_link.rb +6 -6
  65. data/lib/ui_bibz/ui/core/{stars.rb → star.rb} +14 -14
  66. data/lib/ui_bibz/ui/core/tag.rb +1 -2
  67. data/lib/ui_bibz/ui/core/{modal → windows}/components/modal_body.rb +2 -2
  68. data/lib/ui_bibz/ui/core/{modal → windows}/components/modal_footer.rb +2 -2
  69. data/lib/ui_bibz/ui/core/{modal → windows}/components/modal_header.rb +2 -2
  70. data/lib/ui_bibz/ui/core/{modal → windows}/modal.rb +8 -8
  71. data/lib/ui_bibz/ui/ux/tables/components/actions.rb +9 -9
  72. data/lib/ui_bibz/ui/ux/tables/extensions/actionable.rb +1 -1
  73. data/lib/ui_bibz/ui/ux/tables/table_pagination.rb +5 -4
  74. data/lib/ui_bibz/version.rb +1 -1
  75. data/test/dummy/app/controllers/users_controller.rb +18 -0
  76. data/test/dummy/app/models/user.rb +1 -0
  77. data/test/dummy/config/application.rb +1 -1
  78. data/test/dummy/config/initializers/simple_form_bootstrap.rb +155 -0
  79. data/test/simple_form_test.rb +123 -0
  80. data/test/test_helper.rb +2 -2
  81. data/test/ui/breadcrumb_test.rb +2 -2
  82. data/test/ui/button_test.rb +13 -39
  83. data/test/ui/dropdown_test.rb +14 -1
  84. data/test/ui/glyph_test.rb +6 -0
  85. data/test/ui/input_dropdown_select_field_test.rb +9 -9
  86. data/test/ui/input_switch_field_test.rb +11 -11
  87. data/test/ui/inputs_test.rb +26 -12
  88. data/test/ui/list_group_test.rb +2 -2
  89. data/test/ui/{stars_test.rb → star_test.rb} +7 -7
  90. data/test/ui/table_test.rb +3 -3
  91. data/test/ui_helper_test.rb +6 -1
  92. data/ui_bibz.gemspec +4 -3
  93. data/vendor/assets/stylesheets/awesome-bootstrap-checkbox.scss +250 -0
  94. metadata +65 -39
  95. data/lib/ui_bibz/helpers/pagination_helper.rb +0 -55
  96. data/lib/ui_bibz/ui/core/buttons/button_dropdown.rb +0 -82
@@ -1,6 +1,6 @@
1
1
  module UiBibz::Ui::Core
2
2
 
3
- # Create stars notation
3
+ # Create star notation
4
4
  #
5
5
  # This element is an extend of UiBibz::Ui::Core::Component.
6
6
  #
@@ -16,33 +16,33 @@ module UiBibz::Ui::Core
16
16
  # You can pass arguments in options attribute:
17
17
  # * +status+ - status of élement with symbol value:
18
18
  # (+:default+, +:primary+, +:info+, +:warning+, +:danger+)
19
- # * +num+ - Integer, number of stars
19
+ # * +num+ - Integer, number of star
20
20
  #
21
21
  # ==== Signatures
22
22
  #
23
- # UiBibz::Ui::Core::Stars.new(content, options = nil, html_options = nil)
23
+ # UiBibz::Ui::Core::Star.new(content, options = nil, html_options = nil)
24
24
  #
25
- # UiBibz::Ui::Core::Stars.new(options = nil, html_options = nil) do
25
+ # UiBibz::Ui::Core::Star.new(options = nil, html_options = nil) do
26
26
  # content
27
27
  # end
28
28
  #
29
29
  # ==== Examples
30
30
  #
31
- # UiBibz::Ui::Core::Stars.new(content, status: :success).render
31
+ # UiBibz::Ui::Core::Star.new(content, status: :success).render
32
32
  #
33
- # UiBibz::Ui::Core::Stars.new({ num: 10 }) do
33
+ # UiBibz::Ui::Core::Star.new({ num: 10 }) do
34
34
  # #content
35
35
  # end.render
36
36
  #
37
37
  # ==== Helper
38
38
  #
39
- # stars(content, options = {}, html_options = {})
39
+ # star(content, options = {}, html_options = {})
40
40
  #
41
- # stars(options = {}, html_options = {}) do
41
+ # star(options = {}, html_options = {}) do
42
42
  # content
43
43
  # end
44
44
  #
45
- class Stars < Component
45
+ class Star < UiBibz::Ui::Core::Component
46
46
 
47
47
  # See UiBibz::Ui::Core::Component.initialize
48
48
  def initialize content = nil, options = nil, html_options = nil, &block
@@ -51,7 +51,7 @@ module UiBibz::Ui::Core
51
51
 
52
52
  # Render html tag
53
53
  def render
54
- content_tag :span, stars_notation.join(' ').html_safe, html_options
54
+ content_tag :span, star_notation.join(' ').html_safe, html_options
55
55
  end
56
56
 
57
57
  private
@@ -62,13 +62,13 @@ module UiBibz::Ui::Core
62
62
  end
63
63
 
64
64
  def number
65
- options[:num] || 5
65
+ (options[:num] || 5).to_i
66
66
  end
67
67
 
68
- def stars_notation
68
+ def star_notation
69
69
  stars = []
70
- number.to_i.times do |star|
71
- star = star + 1
70
+ number.times do |star|
71
+ star += 1
72
72
  name = star_name(star)
73
73
  stars << UiBibz::Ui::Core::Glyph.new(name, glyph_opts).render
74
74
  end
@@ -67,8 +67,7 @@ module UiBibz::Ui::Core
67
67
  end
68
68
 
69
69
  def status
70
- sym = @options[:status] || :default
71
- "tag-#{ sym }"
70
+ "tag-#{ @options[:status] || :default }"
72
71
  end
73
72
 
74
73
  def type
@@ -1,4 +1,4 @@
1
- module UiBibz::Ui::Core
1
+ module UiBibz::Ui::Core::Windows::Components
2
2
 
3
3
  # Create a modal body
4
4
  #
@@ -29,7 +29,7 @@ module UiBibz::Ui::Core
29
29
  # 'Exemple'
30
30
  # end.render
31
31
  #
32
- class ModalBody < Component
32
+ class ModalBody < UiBibz::Ui::Core::Component
33
33
 
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
35
  def initialize content = nil, options = nil, html_options = nil, &block
@@ -1,4 +1,4 @@
1
- module UiBibz::Ui::Core
1
+ module UiBibz::Ui::Core::Windows::Components
2
2
 
3
3
  # Create a modal footer
4
4
  #
@@ -29,7 +29,7 @@ module UiBibz::Ui::Core
29
29
  # 'Exemple'
30
30
  # end.render
31
31
  #
32
- class ModalFooter < Component
32
+ class ModalFooter < UiBibz::Ui::Core::Component
33
33
 
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
35
  def initialize content = nil, options = nil, html_options = nil, &block
@@ -1,4 +1,4 @@
1
- module UiBibz::Ui::Core
1
+ module UiBibz::Ui::Core::Windows::Components
2
2
 
3
3
  # Create a modal header
4
4
  #
@@ -29,7 +29,7 @@ module UiBibz::Ui::Core
29
29
  # 'Exemple'
30
30
  # end.render
31
31
  #
32
- class ModalHeader < Component
32
+ class ModalHeader < UiBibz::Ui::Core::Component
33
33
 
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
35
  def initialize content = nil, options = nil, html_options = nil, &block
@@ -1,7 +1,7 @@
1
- require 'ui_bibz/ui/core/modal/components/modal_header'
2
- require 'ui_bibz/ui/core/modal/components/modal_body'
3
- require 'ui_bibz/ui/core/modal/components/modal_footer'
4
- module UiBibz::Ui::Core
1
+ require 'ui_bibz/ui/core/windows/components/modal_header'
2
+ require 'ui_bibz/ui/core/windows/components/modal_body'
3
+ require 'ui_bibz/ui/core/windows/components/modal_footer'
4
+ module UiBibz::Ui::Core::Windows
5
5
 
6
6
  # Create an modal
7
7
  #
@@ -52,7 +52,7 @@ module UiBibz::Ui::Core
52
52
  # end
53
53
  # end
54
54
  #
55
- class Modal < Component
55
+ class Modal < UiBibz::Ui::Core::Component
56
56
 
57
57
  # See UiBibz::Ui::Core::Component.initialize
58
58
  def initialize content = nil, options = nil, html_options = nil, &block
@@ -73,15 +73,15 @@ module UiBibz::Ui::Core
73
73
  end
74
74
 
75
75
  def header content = nil, options = nil, html_options = nil, &block
76
- @header = ModalHeader.new(content, options, html_options, &block).render
76
+ @header = UiBibz::Ui::Core::Windows::Components::ModalHeader.new(content, options, html_options, &block).render
77
77
  end
78
78
 
79
79
  def footer content = nil, options = nil, html_options = nil, &block
80
- @footer = ModalFooter.new(content, options, html_options, &block).render
80
+ @footer = UiBibz::Ui::Core::Windows::Components::ModalFooter.new(content, options, html_options, &block).render
81
81
  end
82
82
 
83
83
  def body content = nil, options = nil, html_options = nil, &block
84
- @body = ModalBody.new(content, options, html_options, &block).render
84
+ @body = UiBibz::Ui::Core::Windows::Components::ModalBody.new(content, options, html_options, &block).render
85
85
  end
86
86
 
87
87
  private
@@ -1,6 +1,6 @@
1
- require 'ui_bibz/ui/core/dropdown/components/dropdown_header'
2
- require 'ui_bibz/ui/core/dropdown/components/dropdown_divider'
3
- require 'ui_bibz/ui/core/dropdown/components/dropdown_link'
1
+ require 'ui_bibz/ui/core/dropdowns/components/dropdown_header'
2
+ require 'ui_bibz/ui/core/dropdowns/components/dropdown_divider'
3
+ require 'ui_bibz/ui/core/dropdowns/components/dropdown_link'
4
4
  module UiBibz::Ui::Ux::Tables
5
5
  class Actions
6
6
 
@@ -12,15 +12,15 @@ module UiBibz::Ui::Ux::Tables
12
12
 
13
13
  # Add link action in table
14
14
  def link content = nil, options = nil, html_options = nil, &block
15
- @actions << UiBibz::Ui::Core::DropdownLink.new(content, options, html_options, &block).render
15
+ @actions << UiBibz::Ui::Core::Dropdowns::Components::DropdownLink.new(content, options, html_options, &block).render
16
16
  end
17
17
 
18
18
  def divider
19
- @actions << UiBibz::Ui::Core::DropdownDivider.new.render
19
+ @actions << UiBibz::Ui::Core::Dropdowns::Components::DropdownDivider.new.render
20
20
  end
21
21
 
22
22
  def header content = nil, options = nil, html_options = nil, &block
23
- @actions << UiBibz::Ui::Core::DropdownHeader.new(content, options, html_options, &block).render
23
+ @actions << UiBibz::Ui::Core::Dropdowns::Components::DropdownHeader.new(content, options, html_options, &block).render
24
24
  end
25
25
 
26
26
  def html content
@@ -52,9 +52,9 @@ module UiBibz::Ui::Ux::Tables
52
52
 
53
53
  def defaults_actions
54
54
  [
55
- UiBibz::Ui::Core::DropdownLink.new(show_name, url: { controller: @store.controller, action: 'show', id: :id }, glyph: 'eye').render,
56
- UiBibz::Ui::Core::DropdownLink.new(edit_name, url:{ controller: @store.controller, action: 'edit', id: :id }, glyph: 'pencil').render,
57
- UiBibz::Ui::Core::DropdownLink.new(delete_name, { glyph: 'trash', url: { controller: @store.controller, action: 'destroy', id: :id }, link_html_options: { data: { confirm: 'Are you sure?', method: :delete }}}).render
55
+ UiBibz::Ui::Core::Dropdowns::Components::DropdownLink.new(show_name, url: { controller: @store.controller, action: 'show', id: :id }, glyph: 'eye').render,
56
+ UiBibz::Ui::Core::Dropdowns::Components::DropdownLink.new(edit_name, url:{ controller: @store.controller, action: 'edit', id: :id }, glyph: 'pencil').render,
57
+ UiBibz::Ui::Core::Dropdowns::Components::DropdownLink.new(delete_name, { glyph: 'trash', url: { controller: @store.controller, action: 'destroy', id: :id }, link_html_options: { data: { confirm: 'Are you sure?', method: :delete }}}).render
58
58
  ]
59
59
  end
60
60
 
@@ -31,7 +31,7 @@ module UiBibz::Ui::Ux::Tables
31
31
  unless @actions.nil?
32
32
  @actions.format_action.call(record) unless @actions.format_action.nil?
33
33
  unless (default_actions? != true && @actions.raw_list.empty?)
34
- UiBibz::Ui::Core::Buttons::ButtonDropdown.new(dropdown_action_name, { position: :right, size: :sm, glyph: actions_glyph }, { class: 'dropdown-action' }).tap do |d|
34
+ UiBibz::Ui::Core::Dropdowns::Dropdown.new(dropdown_action_name, { position: :right, size: :sm, glyph: actions_glyph }, { class: 'dropdown-action' }).tap do |d|
35
35
  actions_links(record).each do |l|
36
36
  d.html l.to_s.html_safe
37
37
  end
@@ -1,7 +1,6 @@
1
- require 'will_paginate'
2
- require "will_paginate-bootstrap"
1
+ #require 'will_paginate'
2
+ require "will_paginate-bootstrap4"
3
3
  require "ui_bibz/ui/ux/tables/components/store"
4
- require 'ui_bibz/helpers/pagination_helper'
5
4
  module UiBibz::Ui::Ux::Tables
6
5
 
7
6
  # Create a pagination for table
@@ -27,6 +26,8 @@ module UiBibz::Ui::Ux::Tables
27
26
  #
28
27
  class TablePagination < UiBibz::Ui::Base
29
28
  include WillPaginate::ActionView
29
+ include ActionView
30
+ #include WillPaginate::ActionView::BootstrapLinkRenderer
30
31
 
31
32
  # Initialize pagination with component item
32
33
  # pagination require WillPaginate gem
@@ -39,7 +40,7 @@ module UiBibz::Ui::Ux::Tables
39
40
  paginate_parameters = { controller: store.controller }
40
41
  paginate_parameters = paginate_parameters.merge({ store_id: store.id }) unless store.id.nil?
41
42
  paginate_parameters = paginate_parameters.merge(store.parameters)
42
- will_paginate(store.records, params: paginate_parameters, renderer: BootstrapPagination::Rails)
43
+ will_paginate(store.records, params: paginate_parameters, renderer: WillPaginate::ActionView::BootstrapLinkRenderer)
43
44
  end
44
45
 
45
46
  private
@@ -1,3 +1,3 @@
1
1
  module UiBibz
2
- VERSION = "2.0.0.alpha24"
2
+ VERSION = "2.0.0.alpha26"
3
3
  end
@@ -0,0 +1,18 @@
1
+ class UsersController < ApplicationController
2
+ # Prevent CSRF attacks by raising an exception.
3
+ # For APIs, you may want to use :null_session instead.
4
+ def index
5
+ end
6
+ def add
7
+ end
8
+ def edit
9
+ end
10
+ def show
11
+ end
12
+ def create
13
+ end
14
+ def update
15
+ end
16
+ def destroy
17
+ end
18
+ end
@@ -1,5 +1,6 @@
1
1
  class User < ActiveRecord::Base
2
2
  include UiBibz::Concerns::Models::Searchable
3
3
 
4
+ attr_accessor :name_fr_formula
4
5
  searchable_attributes :name_fr, :name_en
5
6
  end
@@ -20,7 +20,7 @@ module Dummy
20
20
  # config.i18n.default_locale = :de
21
21
 
22
22
  # Do not swallow errors in after_commit/after_rollback callbacks.
23
- config.active_record.raise_in_transactional_callbacks = true
23
+ #config.active_record.raise_in_transactional_callbacks = true
24
24
  end
25
25
  end
26
26
 
@@ -0,0 +1,155 @@
1
+ # Use this setup block to configure all options available in SimpleForm.
2
+ SimpleForm.setup do |config|
3
+ config.error_notification_class = 'alert alert-danger'
4
+ config.button_class = 'btn btn-default'
5
+ config.boolean_label_class = nil
6
+ config.custom_inputs_namespaces << "CustomInputs"
7
+
8
+ config.wrappers :vertical_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
9
+ b.use :html5
10
+ b.use :placeholder
11
+ b.optional :maxlength
12
+ b.optional :minlength
13
+ b.optional :pattern
14
+ b.optional :min_max
15
+ b.optional :readonly
16
+ b.use :label, class: 'control-label'
17
+
18
+ b.use :input, class: 'form-control'
19
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
20
+ b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
21
+ end
22
+
23
+ config.wrappers :vertical_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
24
+ b.use :html5
25
+ b.use :placeholder
26
+ b.optional :maxlength
27
+ b.optional :minlength
28
+ b.optional :readonly
29
+ b.use :label, class: 'control-label'
30
+
31
+ b.use :input
32
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
33
+ b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
34
+ end
35
+
36
+ config.wrappers :vertical_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
37
+ b.use :html5
38
+ b.optional :readonly
39
+
40
+ b.wrapper tag: 'div', class: 'checkbox' do |ba|
41
+ ba.use :label_input
42
+ end
43
+
44
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
45
+ b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
46
+ end
47
+
48
+ config.wrappers :vertical_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
49
+ b.use :html5
50
+ b.optional :readonly
51
+ b.use :label, class: 'control-label'
52
+ b.use :input
53
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
54
+ b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
55
+ end
56
+
57
+ config.wrappers :horizontal_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
58
+ b.use :html5
59
+ b.use :placeholder
60
+ b.optional :maxlength
61
+ b.optional :minlength
62
+ b.optional :pattern
63
+ b.optional :min_max
64
+ b.optional :readonly
65
+ b.use :label, class: 'col-sm-3 control-label'
66
+
67
+ b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
68
+ ba.use :input, class: 'form-control'
69
+ ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
70
+ ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
71
+ end
72
+ end
73
+
74
+ config.wrappers :horizontal_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
75
+ b.use :html5
76
+ b.use :placeholder
77
+ b.optional :maxlength
78
+ b.optional :minlength
79
+ b.optional :readonly
80
+ b.use :label, class: 'col-sm-3 control-label'
81
+
82
+ b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
83
+ ba.use :input
84
+ ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
85
+ ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
86
+ end
87
+ end
88
+
89
+ config.wrappers :horizontal_boolean, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
90
+ b.use :html5
91
+ b.optional :readonly
92
+
93
+ b.wrapper tag: 'div', class: 'col-sm-offset-3 col-sm-9' do |wr|
94
+ wr.wrapper tag: 'div', class: 'checkbox' do |ba|
95
+ ba.use :label_input
96
+ end
97
+
98
+ wr.use :error, wrap_with: { tag: 'span', class: 'help-block' }
99
+ wr.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
100
+ end
101
+ end
102
+
103
+ config.wrappers :horizontal_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
104
+ b.use :html5
105
+ b.optional :readonly
106
+
107
+ b.use :label, class: 'col-sm-3 control-label'
108
+
109
+ b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
110
+ ba.use :input
111
+ ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
112
+ ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
113
+ end
114
+ end
115
+
116
+ config.wrappers :inline_form, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
117
+ b.use :html5
118
+ b.use :placeholder
119
+ b.optional :maxlength
120
+ b.optional :minlength
121
+ b.optional :pattern
122
+ b.optional :min_max
123
+ b.optional :readonly
124
+ b.use :label, class: 'sr-only'
125
+
126
+ b.use :input, class: 'form-control'
127
+ b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
128
+ b.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
129
+ end
130
+
131
+ config.wrappers :multi_select, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
132
+ b.use :html5
133
+ b.optional :readonly
134
+ b.use :label, class: 'control-label'
135
+ b.wrapper tag: 'div', class: 'form-inline' do |ba|
136
+ ba.use :input, class: 'form-control'
137
+ ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
138
+ ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
139
+ end
140
+ end
141
+ # Wrappers for forms and inputs using the Bootstrap toolkit.
142
+ # Check the Bootstrap docs (http://getbootstrap.com)
143
+ # to learn about the different styles for forms and inputs,
144
+ # buttons and other elements.
145
+ config.default_wrapper = :vertical_form
146
+ config.wrapper_mappings = {
147
+ check_boxes: :vertical_radio_and_checkboxes,
148
+ radio_buttons: :vertical_radio_and_checkboxes,
149
+ file: :vertical_file_input,
150
+ boolean: :vertical_boolean,
151
+ datetime: :multi_select,
152
+ date: :multi_select,
153
+ time: :multi_select
154
+ }
155
+ end