ui_bibz 3.0.0.alpha3 → 3.0.0.alpha10

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +11 -11
  3. data/README.md +5 -1
  4. data/lib/ui_bibz.rb +0 -1
  5. data/lib/ui_bibz/helpers/ui/core/forms_helper.rb +2 -1
  6. data/lib/ui_bibz/infos.rb +4 -4
  7. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_checkbox_field_input.rb +5 -1
  8. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_multi_select_field_input.rb +3 -3
  9. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_slider_field_input.rb +1 -1
  10. data/lib/ui_bibz/rails/engine.rb +0 -4
  11. data/lib/ui_bibz/ui/concerns/card_itemable_concern.rb +2 -0
  12. data/lib/ui_bibz/ui/concerns/html_concern.rb +3 -3
  13. data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +8 -0
  14. data/lib/ui_bibz/ui/core/boxes/components/card_image.rb +6 -2
  15. data/lib/ui_bibz/ui/core/forms/buttons/button.rb +3 -12
  16. data/lib/ui_bibz/ui/core/forms/buttons/button_link.rb +1 -2
  17. data/lib/ui_bibz/ui/core/forms/buttons/button_refresh.rb +0 -1
  18. data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +13 -4
  19. data/lib/ui_bibz/ui/core/forms/choices/radio_field.rb +7 -1
  20. data/lib/ui_bibz/ui/core/forms/choices/switch_field.rb +4 -0
  21. data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +13 -9
  22. data/lib/ui_bibz/ui/core/forms/dropdowns/split_dropdown.rb +7 -2
  23. data/lib/ui_bibz/ui/core/forms/numbers/formula_field.rb +2 -0
  24. data/lib/ui_bibz/ui/core/forms/numbers/range_field.rb +19 -1
  25. data/lib/ui_bibz/ui/core/forms/numbers/slider_field.rb +13 -1
  26. data/lib/ui_bibz/ui/core/forms/numbers/slider_header.rb +4 -4
  27. data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +41 -59
  28. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button.rb +1 -9
  29. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_link.rb +1 -9
  30. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_dropdown.rb +5 -4
  31. data/lib/ui_bibz/ui/core/forms/surrounds/surround_field.rb +3 -8
  32. data/lib/ui_bibz/ui/core/icons/glyph.rb +9 -1
  33. data/lib/ui_bibz/ui/core/navigations/components/nav_dropdown.rb +2 -2
  34. data/lib/ui_bibz/ui/core/navigations/components/nav_link_link.rb +2 -2
  35. data/lib/ui_bibz/ui/core/navigations/nav.rb +3 -3
  36. data/lib/ui_bibz/ui/core/navigations/navbar.rb +6 -4
  37. data/lib/ui_bibz/ui/core/navigations/tab_group.rb +5 -1
  38. data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +15 -1
  39. data/lib/ui_bibz/ui/core/windows/modal.rb +6 -2
  40. data/lib/ui_bibz/ui/extensions/core/component/glyph_extension.rb +11 -24
  41. data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +1 -1
  42. data/lib/ui_bibz/ui/extensions/core/forms/surround_extension.rb +1 -1
  43. data/lib/ui_bibz/ui/ux/containers/components/panel_header.rb +3 -2
  44. data/lib/ui_bibz/ui/ux/containers/components/panel_header_title.rb +47 -0
  45. data/lib/ui_bibz/ui/ux/tables/table_pagination_per_page.rb +3 -3
  46. data/lib/ui_bibz/ui/ux/tables/table_search_field.rb +4 -4
  47. data/lib/ui_bibz/utils/breakdown_class_name_generator.rb +20 -7
  48. data/lib/ui_bibz/utils/internationalization.rb +1 -1
  49. data/test/simple_form_test.rb +6 -28
  50. data/test/ui/core/boxes/card_test.rb +2 -2
  51. data/test/ui/core/component_test.rb +2 -2
  52. data/test/ui/core/forms/buttons/button_group_test.rb +2 -2
  53. data/test/ui/core/forms/buttons/button_link_test.rb +1 -8
  54. data/test/ui/core/forms/buttons/button_refresh_test.rb +1 -1
  55. data/test/ui/core/forms/buttons/button_test.rb +2 -9
  56. data/test/ui/core/forms/choices/checkbox_field_test.rb +8 -1
  57. data/test/ui/core/forms/choices/choice_group_test.rb +3 -3
  58. data/test/ui/core/forms/choices/radio_field_test.rb +1 -1
  59. data/test/ui/core/forms/dropdowns/dropdown_test.rb +2 -2
  60. data/test/ui/core/forms/numbers/range_field_test.rb +14 -0
  61. data/test/ui/core/forms/numbers/slider_field_test.rb +2 -2
  62. data/test/ui/core/forms/selects/multi_select_field_test.rb +6 -6
  63. data/test/ui/core/forms/selects/select_field_test.rb +1 -1
  64. data/test/ui/core/forms/surrounds/surround_field_test.rb +27 -3
  65. data/test/ui/core/forms/texts/auto_complete_field_test.rb +2 -2
  66. data/test/ui/core/navigations/breadcrumb_test.rb +1 -1
  67. data/test/ui/core/navigations/link_test.rb +1 -1
  68. data/test/ui/core/navigations/nav_test.rb +7 -6
  69. data/test/ui/core/navigations/navbar_test.rb +5 -6
  70. data/test/ui/core/navigations/tab_group_test.rb +5 -5
  71. data/test/ui/core/notifications/alert_test.rb +1 -1
  72. data/test/ui/core/notifications/badge_test.rb +2 -2
  73. data/test/ui/utils/breakdown_class_name_generator_test.rb +14 -0
  74. data/test/ui/ux/containers/panel_test.rb +1 -1
  75. data/test/ui/ux/tables/table_test.rb +2 -2
  76. data/ui_bibz.gemspec +1 -1
  77. metadata +7 -10
  78. data/lib/ui_bibz/ui/core/forms/selects/multi_select_field.rb +0 -122
  79. data/package.json +0 -5
  80. data/test/ui/core/forms/selects/dropdown_select_field_test.rb +0 -84
@@ -16,7 +16,7 @@ class AlertTest < ActionView::TestCase
16
16
  a.header 'Information'
17
17
  a.body 'Body text'
18
18
  end
19
- expected = "<div class=\"alert-success alert alert-dismissible\" role=\"alert\"><h4 class=\"alert-header\"><i class=\"glyph fas fa-thumbs-o-up\"></i> Information<button type=\"button\" class=\"btn-close\" data-dismiss=\"alert\" aria-label=\"Close\"></button></h4><hr /><p class=\"alert-body mb-0\">Body text</p></div>"
19
+ expected = "<div class=\"alert-success alert alert-dismissible\" role=\"alert\"><h4 class=\"alert-header\"><i class=\"glyph fas fa-thumbs-o-up\"></i> Information<button type=\"button\" class=\"btn-close\" data-dismiss=\"alert\" aria-label=\"Close\"></button></h4><hr /><p class=\"alert-body mb-0\">Body text</p></div>"
20
20
 
21
21
  assert_equal expected, actual
22
22
  end
@@ -6,7 +6,7 @@ class BadgeTest < ActionView::TestCase
6
6
 
7
7
  test 'badge' do
8
8
  actual = ui_badge 'state', status: :success, glyph: 'pencil'
9
- expected = '<span class="bg-success badge"><i class="glyph fas fa-pencil"></i> state</span>'
9
+ expected = "<span class=\"bg-success badge\"><i class=\"glyph fas fa-pencil\"></i> state</span>"
10
10
 
11
11
  assert_equal expected, actual
12
12
  end
@@ -20,7 +20,7 @@ class BadgeTest < ActionView::TestCase
20
20
 
21
21
  test 'badge pill' do
22
22
  actual = ui_badge 'state', status: :success, type: :pill, glyph: 'pencil'
23
- expected = '<span class="bg-success badge rounded-pill"><i class="glyph fas fa-pencil"></i> state</span>'
23
+ expected = "<span class=\"bg-success badge rounded-pill\"><i class=\"glyph fas fa-pencil\"></i> state</span>"
24
24
 
25
25
  assert_equal expected, actual
26
26
  end
@@ -57,4 +57,18 @@ class BreakdownClassNameGeneratorTest < ActionView::TestCase
57
57
 
58
58
  assert_equal expected, actual
59
59
  end
60
+
61
+ test "name generator with order" do
62
+ actual = UiBibz::Utils::BreakdownClassNameGenerator.new(md: { num: 2 }, order: 2).class_names
63
+ expected = %w[col-md-2 order-2]
64
+
65
+ assert_equal expected, actual
66
+ end
67
+
68
+ test "name generator with md: 8" do
69
+ actual = UiBibz::Utils::BreakdownClassNameGenerator.new(md: 8).class_names
70
+ expected = ["col-md-8"]
71
+
72
+ assert_equal expected, actual
73
+ end
60
74
  end
@@ -35,7 +35,7 @@ class CardTest < ActionView::TestCase
35
35
  end
36
36
  p.footer 'Footer'
37
37
  end
38
- expected = "<div class=\"panel\"><div class=\"panel-header justify-content-between\"><div class=\"panel-title\">My header</div><div class=\"btn-group btn-group-sm\" role=\"group\"><button class=\"btn-outline-secondary btn btn-sm without-text\"><i class=\"glyph fas fa-caret-up\"></i><span class=\"empty-space\"> </span></button><button class=\"btn-outline-secondary btn btn-sm without-text\"><i class=\"glyph fas fa-cog\"></i><span class=\"empty-space\"> </span></button><button class=\"btn-outline-secondary btn btn-sm without-text\"><i class=\"glyph fas fa-Close\"></i><span class=\"empty-space\"> </span></button></div></div><div class=\"btn-toolbar justify-content-between panel-toolbar\" role=\"toolbar\"><div role=\"group\" class=\"btn-group btn-group-sm mr-2\"><button class=\"btn-secondary btn btn-sm\">Copy</button><button class=\"btn-secondary btn btn-sm\">Cut</button><button class=\"btn-secondary btn btn-sm\">Paste</button></div><div class=\"btn-group btn-group-sm\" role=\"group\"><button class=\"btn-secondary btn btn-sm\">Delete</button></div></div><div class=\"panel-body\">Body</div><div class=\"btn-toolbar panel-toolbar\" role=\"toolbar\"><div class=\"btn-group btn-group-sm\" role=\"group\"><button class=\"btn-success btn btn-sm without-text\"><i class=\"glyph fas fa-plus-circle\"></i><span class=\"empty-space\"> </span></button><button class=\"btn-danger btn btn-sm without-text\"><i class=\"glyph fas fa-minus-circle\"></i><span class=\"empty-space\"> </span></button></div></div><div class=\"panel-footer\">Footer</div></div>"
38
+ expected = "<div class=\"panel\"><div class=\"panel-header justify-content-between\"><div class=\"panel-title\">My header</div><div class=\"btn-group btn-group-sm\" role=\"group\"><button class=\"btn-outline-secondary btn btn-sm\"><i class=\"glyph fas fa-caret-up\"></i> <span class=\"visually-hidden\">Minimize</span></button><button class=\"btn-outline-secondary btn btn-sm\"><i class=\"glyph fas fa-cog\"></i> <span class=\"visually-hidden\">Options</span></button><button class=\"btn-outline-secondary btn btn-sm\"><i class=\"glyph fas fa-Close\"></i> <span class=\"visually-hidden\">Close</span></button></div></div><div class=\"btn-toolbar justify-content-between panel-toolbar\" role=\"toolbar\"><div role=\"group\" class=\"btn-group btn-group-sm mr-2\"><button class=\"btn-secondary btn btn-sm\">Copy</button><button class=\"btn-secondary btn btn-sm\">Cut</button><button class=\"btn-secondary btn btn-sm\">Paste</button></div><div class=\"btn-group btn-group-sm\" role=\"group\"><button class=\"btn-secondary btn btn-sm\">Delete</button></div></div><div class=\"panel-body\">Body</div><div class=\"btn-toolbar panel-toolbar\" role=\"toolbar\"><div class=\"btn-group btn-group-sm\" role=\"group\"><button class=\"btn-success btn btn-sm\"><i class=\"glyph fas fa-plus-circle\"></i> <span class=\"visually-hidden\">Add</span></button><button class=\"btn-danger btn btn-sm\"><i class=\"glyph fas fa-minus-circle\"></i> <span class=\"visually-hidden\">Remove</span></button></div></div><div class=\"panel-footer\">Footer</div></div>"
39
39
 
40
40
  assert_equal expected, actual
41
41
  end
@@ -26,7 +26,7 @@ class TableTest < ActionView::TestCase
26
26
 
27
27
  test 'table search field' do
28
28
  actual = UiBibz::Ui::Ux::Tables::TableSearchField.new({ store: @users }).render
29
- expected = "<form class=\"form-table-search-field\" action=\"/users?direction=asc&amp;page=1&amp;per_page=2&amp;search=Name+fr&amp;sort=users.name_fr\" accept-charset=\"UTF-8\" method=\"get\"><div class=\"input-group input-group-sm table-search-field\"><span class=\"input-group-text\"><i class=\"glyph fas fa-search\"></i></span><input type=\"hidden\" name=\"sort\" value=\"users.name_fr\" /><input type=\"hidden\" name=\"direction\" value=\"asc\" /><input type=\"hidden\" name=\"per_page\" value=\"2\" /><input type=\"hidden\" name=\"page\" value=\"1\" /><input type=\"hidden\" name=\"only_path\" value=\"true\" /><input type=\"hidden\" name=\"link_type\" value=\"search\" /><input type=\"search\" value=\"Name fr\" name=\"search\" class=\"form-control\" placeholder=\"Search by Name fr and Name en...\" /><button type=\"button\" class=\"btn btn-secondary input-group-btn clear-search-btn\"><i class=\"glyph fas fa-times-circle\"></i></button></div></form>"
29
+ expected = "<form class=\"form-table-search-field\" action=\"/users?direction=asc&amp;page=1&amp;per_page=2&amp;search=Name+fr&amp;sort=users.name_fr\" accept-charset=\"UTF-8\" method=\"get\"><div class=\"input-group input-group-sm table-search-field\"><span class=\"input-group-text\"><i class=\"glyph fas fa-search\"></i></span><input type=\"hidden\" name=\"sort\" value=\"users.name_fr\" /><input type=\"hidden\" name=\"direction\" value=\"asc\" /><input type=\"hidden\" name=\"per_page\" value=\"2\" /><input type=\"hidden\" name=\"page\" value=\"1\" /><input type=\"hidden\" name=\"only_path\" value=\"true\" /><input type=\"hidden\" name=\"link_type\" value=\"search\" /><input type=\"search\" value=\"Name fr\" name=\"search\" class=\"form-control\" placeholder=\"Search by Name fr and Name en...\" /><button type=\"button\" class=\"btn btn-secondary input-group-btn clear-search-btn\"><i class=\"glyph fas fa-times-circle\"></i> <span class=\"visually-hidden\">Clear Search</span></button></div></form>"
30
30
 
31
31
  assert_equal expected, actual
32
32
  end
@@ -97,7 +97,7 @@ class TableTest < ActionView::TestCase
97
97
  test 'table searchable' do
98
98
  options = { searchable: true }
99
99
  actual = UiBibz::Ui::Ux::Tables::Searchable.new(@store, options).render
100
- expected = "<div><div class=\"title\">Users list</div><form class=\"form-table-search-field\" action=\"/users?direction=asc&amp;page=1&amp;per_page=2&amp;search=Name+fr&amp;sort=users.name_fr\" accept-charset=\"UTF-8\" method=\"get\"><div class=\"input-group input-group-sm table-search-field\"><span class=\"input-group-text\"><i class=\"glyph fas fa-search\"></i></span><input type=\"hidden\" name=\"sort\" value=\"users.name_fr\" /><input type=\"hidden\" name=\"direction\" value=\"asc\" /><input type=\"hidden\" name=\"per_page\" value=\"2\" /><input type=\"hidden\" name=\"page\" value=\"1\" /><input type=\"hidden\" name=\"only_path\" value=\"true\" /><input type=\"hidden\" name=\"link_type\" value=\"search\" /><input type=\"search\" value=\"Name fr\" name=\"search\" class=\"form-control\" placeholder=\"Search by Name fr and Name en...\" /><button type=\"button\" class=\"btn btn-secondary input-group-btn clear-search-btn\"><i class=\"glyph fas fa-times-circle\"></i></button></div></form><br class=\"ui-bibz-clear\" /></div>"
100
+ expected = "<div><div class=\"title\">Users list</div><form class=\"form-table-search-field\" action=\"/users?direction=asc&amp;page=1&amp;per_page=2&amp;search=Name+fr&amp;sort=users.name_fr\" accept-charset=\"UTF-8\" method=\"get\"><div class=\"input-group input-group-sm table-search-field\"><span class=\"input-group-text\"><i class=\"glyph fas fa-search\"></i></span><input type=\"hidden\" name=\"sort\" value=\"users.name_fr\" /><input type=\"hidden\" name=\"direction\" value=\"asc\" /><input type=\"hidden\" name=\"per_page\" value=\"2\" /><input type=\"hidden\" name=\"page\" value=\"1\" /><input type=\"hidden\" name=\"only_path\" value=\"true\" /><input type=\"hidden\" name=\"link_type\" value=\"search\" /><input type=\"search\" value=\"Name fr\" name=\"search\" class=\"form-control\" placeholder=\"Search by Name fr and Name en...\" /><button type=\"button\" class=\"btn btn-secondary input-group-btn clear-search-btn\"><i class=\"glyph fas fa-times-circle\"></i> <span class=\"visually-hidden\">Clear Search</span></button></div></form><br class=\"ui-bibz-clear\" /></div>"
101
101
 
102
102
  assert_equal expected, actual
103
103
  end
@@ -12,7 +12,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
12
12
  Gem::Specification.new do |s|
13
13
  s.name = UiBibz::SLUG
14
14
  s.version = UiBibz::VERSION
15
- s.authors = UiBibz::AUTHORS
15
+ s.author = UiBibz::AUTHOR
16
16
  s.email = UiBibz::EMAIL
17
17
  s.homepage = UiBibz::HOMEPAGE
18
18
  s.summary = UiBibz::SUMMARY
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ui_bibz
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.alpha3
4
+ version: 3.0.0.alpha10
5
5
  platform: ruby
6
6
  authors:
7
- - Thooams
7
+ - Thooams [Thomas HUMMEL]
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-16 00:00:00.000000000 Z
11
+ date: 2020-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -240,7 +240,7 @@ dependencies:
240
240
  - - ">="
241
241
  - !ruby/object:Gem::Version
242
242
  version: '0'
243
- description: A Rails Interface Framework using Bootstrap 5.0.0.alpha2.
243
+ description: A Rails Interface Framework using Bootstrap 5.0.0.alpha3.
244
244
  email: thomas@hummel.link
245
245
  executables:
246
246
  - test
@@ -357,7 +357,6 @@ files:
357
357
  - lib/ui_bibz/ui/core/forms/selects/abstract_select.rb
358
358
  - lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb
359
359
  - lib/ui_bibz/ui/core/forms/selects/multi_column_field.rb
360
- - lib/ui_bibz/ui/core/forms/selects/multi_select_field.rb
361
360
  - lib/ui_bibz/ui/core/forms/selects/select_field.rb
362
361
  - lib/ui_bibz/ui/core/forms/surrounds/components/surround_addon.rb
363
362
  - lib/ui_bibz/ui/core/forms/surrounds/components/surround_button.rb
@@ -428,6 +427,7 @@ files:
428
427
  - lib/ui_bibz/ui/ux/containers/components/panel_footer.rb
429
428
  - lib/ui_bibz/ui/ux/containers/components/panel_group.rb
430
429
  - lib/ui_bibz/ui/ux/containers/components/panel_header.rb
430
+ - lib/ui_bibz/ui/ux/containers/components/panel_header_title.rb
431
431
  - lib/ui_bibz/ui/ux/containers/components/panel_tab_group.rb
432
432
  - lib/ui_bibz/ui/ux/containers/components/panel_toolbar.rb
433
433
  - lib/ui_bibz/ui/ux/containers/panel.rb
@@ -450,7 +450,6 @@ files:
450
450
  - lib/ui_bibz/utils/glyph_changer.rb
451
451
  - lib/ui_bibz/utils/internationalization.rb
452
452
  - lib/ui_bibz/utils/screwdriver.rb
453
- - package.json
454
453
  - structure.md
455
454
  - test/dummy/README.rdoc
456
455
  - test/dummy/Rakefile
@@ -541,7 +540,6 @@ files:
541
540
  - test/ui/core/forms/numbers/number_field_test.rb
542
541
  - test/ui/core/forms/numbers/range_field_test.rb
543
542
  - test/ui/core/forms/numbers/slider_field_test.rb
544
- - test/ui/core/forms/selects/dropdown_select_field_test.rb
545
543
  - test/ui/core/forms/selects/multi_column_field_test.rb
546
544
  - test/ui/core/forms/selects/multi_select_field_test.rb
547
545
  - test/ui/core/forms/selects/select_field_test.rb
@@ -637,7 +635,7 @@ files:
637
635
  - vendor/assets/stylesheets/jquery.multi-select.min.css
638
636
  - vendor/assets/stylesheets/svg-with-js.css
639
637
  - vendor/assets/stylesheets/tether.min.css
640
- homepage: http://thooams.github.io/Ui-Bibz/
638
+ homepage: https://hummel.link/ui-bibz/
641
639
  licenses:
642
640
  - MIT
643
641
  metadata: {}
@@ -661,7 +659,7 @@ rubygems_version: 3.1.2
661
659
  signing_key:
662
660
  specification_version: 4
663
661
  summary: Ui Bibz is an Ui Framework that allows you to build an interface very quickly
664
- and simply using Bootstrap 5.0.0.alpha2.
662
+ and simply using Bootstrap 5.0.0.alpha3.
665
663
  test_files:
666
664
  - test/dummy/README.rdoc
667
665
  - test/dummy/Rakefile
@@ -752,7 +750,6 @@ test_files:
752
750
  - test/ui/core/forms/numbers/number_field_test.rb
753
751
  - test/ui/core/forms/numbers/range_field_test.rb
754
752
  - test/ui/core/forms/numbers/slider_field_test.rb
755
- - test/ui/core/forms/selects/dropdown_select_field_test.rb
756
753
  - test/ui/core/forms/selects/multi_column_field_test.rb
757
754
  - test/ui/core/forms/selects/multi_select_field_test.rb
758
755
  - test/ui/core/forms/selects/select_field_test.rb
@@ -1,122 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module UiBibz::Ui::Core::Forms::Selects
4
- # Create a MultiSelectField
5
- #
6
- # This element is an extend of UiBibz::Ui::Core::Forms::Buttons::Button
7
- # source : http://loudev.com/
8
- #
9
- # ==== Attributes
10
- #
11
- # * +content+ - Content of element
12
- # * +options+ - Options of element
13
- # * +html_options+ - Html Options of element
14
- #
15
- # ==== Options
16
- #
17
- # You can add HTML attributes using the +html_options+.
18
- # You can pass arguments in options attribute:
19
- # * +option_tags+ - Array, Object [required]
20
- # * +clickable_opt_group+ - Boolean
21
- # * +collapsible_opt_group+ - Boolean
22
- # * +searchable+ - Boolean
23
- # * +select_all_option+ - Boolean
24
- # * +append+ - String, Html
25
- # * +prepend+ - String, Html
26
- # * +connect+ - Hash
27
- # * +event+ - String
28
- # * +mode+ - String
29
- # * +target+ - Hash
30
- # * +selector+ - String
31
- # * +data+ - Array
32
- # * +url+ - String
33
- #
34
- # ==== Signatures
35
- #
36
- # UiBibz::Ui::Core::Forms::Selects::MultiSelectField.new(content, options = {}, html_options = {}).render
37
- #
38
- # UiBibz::Ui::Core::Forms::Selects::MultiSelectField.new(options = {}, html_options = {}) do
39
- # content
40
- # end.render
41
- #
42
- # ==== Examples
43
- #
44
- # UiBibz::Ui::Core::Forms::Selects::MultiSelectField.new('fruits', { option_tags: list_of_fruits, searchable: true }, { class: 'test' })
45
- #
46
- # UiBibz::Ui::Core::Forms::Selects::MultiSelectField.new({ option_tags: list_of_fruits, select_all_option: true }, { class: 'test' }) do
47
- # 'fruits'
48
- # end
49
- #
50
- # ==== Helper
51
- #
52
- # multi_select_field(content, options = {}, html_options = {})
53
- #
54
- class MultiSelectField < UiBibz::Ui::Core::Forms::Selects::AbstractSelect
55
- # See UiBibz::Ui::Core::Forms::Buttons::Button.initialize
56
-
57
- private
58
-
59
- def component_html_options
60
- super.merge({
61
- multiple: true,
62
- disabled: options[:state] == :disabled,
63
- include_blank: false,
64
- prompt: false
65
- })
66
- end
67
-
68
- def component_html_classes
69
- super << [size, type, status, button_outline, 'multi-select-field']
70
- end
71
-
72
- def component_html_data
73
- super
74
- clickable_opt_group
75
- collapsible_opt_group
76
- searchable
77
- select_all_options
78
- number_displayed
79
- end
80
-
81
- def clickable_opt_group
82
- add_html_data('enable_clickable_opt_groups') if options[:clickable_opt_group]
83
- end
84
-
85
- def collapsible_opt_group
86
- add_html_data('enable_collapsible_opt_groups') if options[:collapsible_opt_group]
87
- end
88
-
89
- def searchable
90
- add_html_data('enable_filtering') if options[:searchable]
91
- end
92
-
93
- def number_displayed
94
- add_html_data('number_displayed') if options[:number_displayed]
95
- end
96
-
97
- def select_all_options
98
- add_html_data('include_select_all_option') if options[:select_all_options]
99
- end
100
-
101
- def status
102
- options[:status].nil? ? 'btn-secondary' : "btn-#{options[:status]}"
103
- end
104
-
105
- def type
106
- 'btn-block' if options[:type] == :block
107
- end
108
-
109
- # :lg, :sm or :xs
110
- def size
111
- "btn-#{options[:size]}" if options[:size]
112
- end
113
-
114
- def button_outline
115
- ['btn', outline, @status || :secondary].compact.join('-')
116
- end
117
-
118
- def outline
119
- 'outline' if @options[:outline]
120
- end
121
- end
122
- end
@@ -1,5 +0,0 @@
1
- {
2
- "dependencies": {
3
- "ui-bibz-js": "file:/home/thomas/Apps/ui-bibz-js"
4
- }
5
- }
@@ -1,84 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
-
5
- class DropdownSelectFieldTest < ActionView::TestCase
6
- test 'dropdown_select_field' do
7
- options = options_for_select(Array.new(2) { |i| "option #{i}" })
8
- actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', options_tags: options).render
9
- expected = '<select name="test" id="test" data-style="btn-secondary" class="dropdown-select-field"></select>'
10
-
11
- assert_equal expected, actual
12
- end
13
-
14
- test 'dropdown_select_field searchable' do
15
- options = options_for_select(Array.new(2) { |i| "option #{i}" })
16
- actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, searchable: true }).render
17
- expected = '<select name="test" id="test" data-live-search="true" data-style="btn-secondary" class="dropdown-select-field"></select>'
18
-
19
- assert_equal expected, actual
20
- end
21
-
22
- test 'dropdown_select_field max_options' do
23
- options = options_for_select(Array.new(2) { |i| "option #{i}" })
24
- actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, max_options: 2 }).render
25
- expected = '<select name="test" id="test" data-max-options="2" data-style="btn-secondary" class="dropdown-select-field"></select>'
26
-
27
- assert_equal expected, actual
28
- end
29
-
30
- test 'dropdown_select_field selected_text_format' do
31
- options = options_for_select(Array.new(2) { |i| "option #{i}" })
32
- actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, selected_text_format: 'count > x' }).render
33
- expected = '<select name="test" id="test" data-selected-text-format="count &gt; x" data-style="btn-secondary" class="dropdown-select-field"></select>'
34
-
35
- assert_equal expected, actual
36
- end
37
-
38
- test 'dropdown_select_field menu_size' do
39
- options = options_for_select(Array.new(2) { |i| "option #{i}" })
40
- actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, menu_size: 2 }).render
41
- expected = '<select name="test" id="test" data-size="2" data-style="btn-secondary" class="dropdown-select-field"></select>'
42
-
43
- assert_equal expected, actual
44
- end
45
-
46
- test 'dropdown_select_field actions_box' do
47
- options = options_for_select(Array.new(2) { |i| "option #{i}" })
48
- actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, actions_box: true }).render
49
- expected = '<select name="test" id="test" data-style="btn-secondary" data-actions-box="true" class="dropdown-select-field"></select>'
50
-
51
- assert_equal expected, actual
52
- end
53
-
54
- test 'dropdown_select_field show_tick' do
55
- options = options_for_select(Array.new(2) { |i| "option #{i}" })
56
- actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, show_tick: true }).render
57
- expected = '<select name="test" id="test" data-style="btn-secondary" class="dropdown-select-field show-tick"></select>'
58
-
59
- assert_equal expected, actual
60
- end
61
-
62
- test 'dropdown_select_field show_menu_arrow' do
63
- options = options_for_select(Array.new(2) { |i| "option #{i}" })
64
- actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, show_menu_arrow: true }).render
65
- expected = '<select name="test" id="test" data-style="btn-secondary" class="dropdown-select-field"></select>'
66
-
67
- assert_equal expected, actual
68
- end
69
-
70
- test 'dropdown_select_field dropup' do
71
- options = options_for_select(Array.new(2) { |i| "option #{i}" })
72
- actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, dropup: true }).render
73
- expected = '<select name="test" id="test" data-style="btn-secondary" class="dropdown-select-field dropup"></select>'
74
-
75
- assert_equal expected, actual
76
- end
77
-
78
- test 'dropdown_select_field refresh' do
79
- actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { refresh: { mode: 'local', target: { data: [] } } }).render
80
- expected = '<div class="field-refresh input-group ui_surround_field"><select name="test" id="test" data-style="btn-secondary" class="dropdown-select-field"></select><span data-connect="{&quot;events&quot;:&quot;click&quot;,&quot;mode&quot;:&quot;local&quot;,&quot;target&quot;:{&quot;selector&quot;:&quot;#test&quot;,&quot;url&quot;:&quot;&quot;,&quot;data&quot;:[]}}" class="btn-secondary ui-bibz-connect btn input-refresh-button"><i class="glyph fas fa-sync-alt"></i> </span></div>'
81
-
82
- assert_equal expected, actual
83
- end
84
- end