ui_bibz 3.0.0.alpha3 → 3.0.0.alpha10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +11 -11
- data/README.md +5 -1
- data/lib/ui_bibz.rb +0 -1
- data/lib/ui_bibz/helpers/ui/core/forms_helper.rb +2 -1
- data/lib/ui_bibz/infos.rb +4 -4
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_checkbox_field_input.rb +5 -1
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_multi_select_field_input.rb +3 -3
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_slider_field_input.rb +1 -1
- data/lib/ui_bibz/rails/engine.rb +0 -4
- data/lib/ui_bibz/ui/concerns/card_itemable_concern.rb +2 -0
- data/lib/ui_bibz/ui/concerns/html_concern.rb +3 -3
- data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +8 -0
- data/lib/ui_bibz/ui/core/boxes/components/card_image.rb +6 -2
- data/lib/ui_bibz/ui/core/forms/buttons/button.rb +3 -12
- data/lib/ui_bibz/ui/core/forms/buttons/button_link.rb +1 -2
- data/lib/ui_bibz/ui/core/forms/buttons/button_refresh.rb +0 -1
- data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +13 -4
- data/lib/ui_bibz/ui/core/forms/choices/radio_field.rb +7 -1
- data/lib/ui_bibz/ui/core/forms/choices/switch_field.rb +4 -0
- data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +13 -9
- data/lib/ui_bibz/ui/core/forms/dropdowns/split_dropdown.rb +7 -2
- data/lib/ui_bibz/ui/core/forms/numbers/formula_field.rb +2 -0
- data/lib/ui_bibz/ui/core/forms/numbers/range_field.rb +19 -1
- data/lib/ui_bibz/ui/core/forms/numbers/slider_field.rb +13 -1
- data/lib/ui_bibz/ui/core/forms/numbers/slider_header.rb +4 -4
- data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +41 -59
- data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button.rb +1 -9
- data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_link.rb +1 -9
- data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_dropdown.rb +5 -4
- data/lib/ui_bibz/ui/core/forms/surrounds/surround_field.rb +3 -8
- data/lib/ui_bibz/ui/core/icons/glyph.rb +9 -1
- data/lib/ui_bibz/ui/core/navigations/components/nav_dropdown.rb +2 -2
- data/lib/ui_bibz/ui/core/navigations/components/nav_link_link.rb +2 -2
- data/lib/ui_bibz/ui/core/navigations/nav.rb +3 -3
- data/lib/ui_bibz/ui/core/navigations/navbar.rb +6 -4
- data/lib/ui_bibz/ui/core/navigations/tab_group.rb +5 -1
- data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +15 -1
- data/lib/ui_bibz/ui/core/windows/modal.rb +6 -2
- data/lib/ui_bibz/ui/extensions/core/component/glyph_extension.rb +11 -24
- data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +1 -1
- data/lib/ui_bibz/ui/extensions/core/forms/surround_extension.rb +1 -1
- data/lib/ui_bibz/ui/ux/containers/components/panel_header.rb +3 -2
- data/lib/ui_bibz/ui/ux/containers/components/panel_header_title.rb +47 -0
- data/lib/ui_bibz/ui/ux/tables/table_pagination_per_page.rb +3 -3
- data/lib/ui_bibz/ui/ux/tables/table_search_field.rb +4 -4
- data/lib/ui_bibz/utils/breakdown_class_name_generator.rb +20 -7
- data/lib/ui_bibz/utils/internationalization.rb +1 -1
- data/test/simple_form_test.rb +6 -28
- data/test/ui/core/boxes/card_test.rb +2 -2
- data/test/ui/core/component_test.rb +2 -2
- data/test/ui/core/forms/buttons/button_group_test.rb +2 -2
- data/test/ui/core/forms/buttons/button_link_test.rb +1 -8
- data/test/ui/core/forms/buttons/button_refresh_test.rb +1 -1
- data/test/ui/core/forms/buttons/button_test.rb +2 -9
- data/test/ui/core/forms/choices/checkbox_field_test.rb +8 -1
- data/test/ui/core/forms/choices/choice_group_test.rb +3 -3
- data/test/ui/core/forms/choices/radio_field_test.rb +1 -1
- data/test/ui/core/forms/dropdowns/dropdown_test.rb +2 -2
- data/test/ui/core/forms/numbers/range_field_test.rb +14 -0
- data/test/ui/core/forms/numbers/slider_field_test.rb +2 -2
- data/test/ui/core/forms/selects/multi_select_field_test.rb +6 -6
- data/test/ui/core/forms/selects/select_field_test.rb +1 -1
- data/test/ui/core/forms/surrounds/surround_field_test.rb +27 -3
- data/test/ui/core/forms/texts/auto_complete_field_test.rb +2 -2
- data/test/ui/core/navigations/breadcrumb_test.rb +1 -1
- data/test/ui/core/navigations/link_test.rb +1 -1
- data/test/ui/core/navigations/nav_test.rb +7 -6
- data/test/ui/core/navigations/navbar_test.rb +5 -6
- data/test/ui/core/navigations/tab_group_test.rb +5 -5
- data/test/ui/core/notifications/alert_test.rb +1 -1
- data/test/ui/core/notifications/badge_test.rb +2 -2
- data/test/ui/utils/breakdown_class_name_generator_test.rb +14 -0
- data/test/ui/ux/containers/panel_test.rb +1 -1
- data/test/ui/ux/tables/table_test.rb +2 -2
- data/ui_bibz.gemspec +1 -1
- metadata +7 -10
- data/lib/ui_bibz/ui/core/forms/selects/multi_select_field.rb +0 -122
- data/package.json +0 -5
- data/test/ui/core/forms/selects/dropdown_select_field_test.rb +0 -84
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63c95abb3d6e510f893aaa054080dc4e4b3012fd0a071cd0828a8d2333a0d20d
|
4
|
+
data.tar.gz: 5c13dccaeea9254bd66d0c0a778b3ee18764973438a0668b74f9a56b9b093f10
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a138d91759572dec4f047dd5fb7dacd4ea517fffefaca70e73c92aba4fc96a1e799c4e11c8c4ad9420f19e6d9ca0d32a714a9d4ced4ddacac0e8c3368ccafe8c
|
7
|
+
data.tar.gz: 380361211a36fbf4cccfff82512233dcd05e84f20949bdf28e5808a53ea16626a1fafd5e8c020d8130307e3ecc3937e0c1e375ac5d91d58acf07cb0d66baaf4b
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ui_bibz (3.0.0.
|
4
|
+
ui_bibz (3.0.0.alpha10)
|
5
5
|
rails (~> 6.0.3, >= 6.0.3.2)
|
6
6
|
will-paginate-i18n
|
7
7
|
will_paginate (~> 3.1.0)
|
@@ -75,7 +75,7 @@ GEM
|
|
75
75
|
concurrent-ruby (1.1.7)
|
76
76
|
crass (1.0.6)
|
77
77
|
docile (1.3.2)
|
78
|
-
erubi (1.
|
78
|
+
erubi (1.10.0)
|
79
79
|
erubis (2.7.0)
|
80
80
|
factory_bot (4.11.1)
|
81
81
|
activesupport (>= 3.0.0)
|
@@ -123,7 +123,7 @@ GEM
|
|
123
123
|
overcommit (0.57.0)
|
124
124
|
childprocess (>= 0.6.3, < 5)
|
125
125
|
iniparse (~> 1.4)
|
126
|
-
parallel (1.
|
126
|
+
parallel (1.20.0)
|
127
127
|
parser (2.7.2.0)
|
128
128
|
ast (~> 2.4.1)
|
129
129
|
rack (2.2.3)
|
@@ -159,21 +159,21 @@ GEM
|
|
159
159
|
rake (13.0.1)
|
160
160
|
regexp_parser (1.8.2)
|
161
161
|
rexml (3.2.4)
|
162
|
-
rubocop (
|
162
|
+
rubocop (1.3.1)
|
163
163
|
parallel (~> 1.10)
|
164
164
|
parser (>= 2.7.1.5)
|
165
165
|
rainbow (>= 2.2.2, < 4.0)
|
166
166
|
regexp_parser (>= 1.8)
|
167
167
|
rexml
|
168
|
-
rubocop-ast (>=
|
168
|
+
rubocop-ast (>= 1.1.1)
|
169
169
|
ruby-progressbar (~> 1.7)
|
170
170
|
unicode-display_width (>= 1.4.0, < 2.0)
|
171
|
-
rubocop-ast (
|
171
|
+
rubocop-ast (1.1.1)
|
172
172
|
parser (>= 2.7.1.5)
|
173
173
|
rubocop-minitest (0.10.1)
|
174
174
|
rubocop (>= 0.87)
|
175
|
-
rubocop-performance (1.
|
176
|
-
rubocop (>= 0.
|
175
|
+
rubocop-performance (1.9.0)
|
176
|
+
rubocop (>= 0.90.0, < 2.0)
|
177
177
|
rubocop-ast (>= 0.4.0)
|
178
178
|
rubocop-rails (2.8.1)
|
179
179
|
activesupport (>= 4.2.0)
|
@@ -186,7 +186,7 @@ GEM
|
|
186
186
|
simple_form (5.0.3)
|
187
187
|
actionpack (>= 5.0)
|
188
188
|
activemodel (>= 5.0)
|
189
|
-
simplecov (0.19.
|
189
|
+
simplecov (0.19.1)
|
190
190
|
docile (~> 1.1)
|
191
191
|
simplecov-html (~> 0.11)
|
192
192
|
simplecov-html (0.12.3)
|
@@ -202,7 +202,7 @@ GEM
|
|
202
202
|
thor (1.0.1)
|
203
203
|
thread_safe (0.3.6)
|
204
204
|
tilt (2.0.10)
|
205
|
-
tzinfo (1.2.
|
205
|
+
tzinfo (1.2.8)
|
206
206
|
thread_safe (~> 0.1)
|
207
207
|
unicode-display_width (1.7.0)
|
208
208
|
websocket-driver (0.7.3)
|
@@ -212,7 +212,7 @@ GEM
|
|
212
212
|
will_paginate (3.1.8)
|
213
213
|
will_paginate-bootstrap4 (0.2.2)
|
214
214
|
will_paginate (~> 3.0, >= 3.0.0)
|
215
|
-
zeitwerk (2.4.
|
215
|
+
zeitwerk (2.4.1)
|
216
216
|
|
217
217
|
PLATFORMS
|
218
218
|
ruby
|
data/README.md
CHANGED
@@ -19,7 +19,11 @@ Ui Bibz load [Bootstrap](http://getbootstrap.com/) and [Font Awesome](http://fon
|
|
19
19
|
|
20
20
|
## Documentation
|
21
21
|
Full documentation is here with bootstrap 5:
|
22
|
-
[Ui Bibz v3](http://hummel.link/Ui-Bibz/
|
22
|
+
[Ui Bibz v3](http://hummel.link/Ui-Bibz/)
|
23
23
|
|
24
24
|
Older documentation is here with bootstrap 4:
|
25
25
|
[Ui Bibz v2.5](http://hummel.link/Ui-Bibz/docs/v2.5/)
|
26
|
+
|
27
|
+
|
28
|
+
## Donate
|
29
|
+
![Liberapay](https://img.shields.io/liberapay/patrons/Thomas.svg?logo=liberapay)
|
data/lib/ui_bibz.rb
CHANGED
@@ -24,7 +24,6 @@ module UiBibzInputs
|
|
24
24
|
autoload :UiFormulaFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_formula_field_input'
|
25
25
|
autoload :UiMarkdownEditorFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_markdown_editor_field_input'
|
26
26
|
autoload :UiMultiColumnFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_multi_column_field_input'
|
27
|
-
autoload :UiMultiSelectFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_multi_select_field_input'
|
28
27
|
autoload :UiNumberFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_number_field_input'
|
29
28
|
autoload :UiRadioFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_radio_field_input'
|
30
29
|
autoload :UiSelectFieldInput, 'ui_bibz/inputs/ui_bibz_inputs/ui_select_field_input'
|
@@ -62,7 +62,8 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
62
62
|
# +options+ (Hash)
|
63
63
|
# +html_options+ (Hash)
|
64
64
|
def ui_multi_select_field(content = nil, options = nil, html_options = nil, &block)
|
65
|
-
|
65
|
+
options = (options || {}).merge(multiple: true)
|
66
|
+
UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new(content, options, html_options, &block).render
|
66
67
|
end
|
67
68
|
|
68
69
|
# Formula Field Component
|
data/lib/ui_bibz/infos.rb
CHANGED
@@ -3,15 +3,15 @@
|
|
3
3
|
module UiBibz
|
4
4
|
NAME = 'Ui Bibz'
|
5
5
|
SLUG = 'ui_bibz'
|
6
|
-
BOOTSTRAP_VERSION = '5.0.0.
|
6
|
+
BOOTSTRAP_VERSION = '5.0.0.alpha3'
|
7
7
|
DESCRIPTION = "A Rails Interface Framework using Bootstrap #{BOOTSTRAP_VERSION}."
|
8
8
|
SUMMARY = "Ui Bibz is an Ui Framework that allows you to build an interface very quickly and simply using Bootstrap #{BOOTSTRAP_VERSION}."
|
9
9
|
LICENSE = 'MIT'
|
10
10
|
FONTAWESOME_VERSION = '5.15.1'
|
11
|
-
HOMEPAGE = '
|
11
|
+
HOMEPAGE = 'https://hummel.link/ui-bibz/'
|
12
12
|
REPO = 'git+https://github.com/thooams/Ui-Bibz.git'
|
13
13
|
EMAIL = 'thomas@hummel.link'
|
14
|
-
AUTHOR = 'Thooams'
|
15
|
-
VERSION = '3.0.0.
|
14
|
+
AUTHOR = 'Thooams [Thomas HUMMEL]'
|
15
|
+
VERSION = '3.0.0.alpha10'
|
16
16
|
AUTHORS = ['Thooams'].freeze
|
17
17
|
end
|
@@ -4,6 +4,10 @@ module UiBibzInputs
|
|
4
4
|
class UiCheckboxFieldInput < BaseInput
|
5
5
|
include UiBibz::Ui::Core::Forms::Choices
|
6
6
|
|
7
|
+
def label(_wrapper_options)
|
8
|
+
false
|
9
|
+
end
|
10
|
+
|
7
11
|
def input(_wrapper_options)
|
8
12
|
UiBibz::Ui::Core::Forms::Choices::CheckboxField.new(input_attribute_name, new_options, new_input_html_options).render
|
9
13
|
end
|
@@ -17,7 +21,7 @@ module UiBibzInputs
|
|
17
21
|
end
|
18
22
|
|
19
23
|
def new_options
|
20
|
-
options.merge({ label: attribute_name.to_s.titleize })
|
24
|
+
options.merge({ label: options[:label] || attribute_name.to_s.titleize })
|
21
25
|
end
|
22
26
|
end
|
23
27
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module UiBibzInputs
|
4
|
-
class UiMultiSelectFieldInput <
|
5
|
-
def
|
6
|
-
|
4
|
+
class UiMultiSelectFieldInput < UiDropdownSelectFieldInput
|
5
|
+
def new_options
|
6
|
+
(super || {}).merge(multiple: true)
|
7
7
|
end
|
8
8
|
end
|
9
9
|
end
|
@@ -5,7 +5,7 @@ module UiBibzInputs
|
|
5
5
|
include UiBibz::Ui::Core::Forms::Numbers
|
6
6
|
|
7
7
|
def input(_wrapper_options)
|
8
|
-
input_html_options[:id] =
|
8
|
+
input_html_options[:id] = "#{sanitize_to_id(input_attribute_name)}_slider"
|
9
9
|
UiBibz::Ui::Core::Forms::Numbers::SliderField.new(input_attribute_name, options, input_html_options).render
|
10
10
|
end
|
11
11
|
end
|
data/lib/ui_bibz/rails/engine.rb
CHANGED
@@ -21,10 +21,6 @@ module UiBibz
|
|
21
21
|
initializer 'ui_bibz.helpers.form' do
|
22
22
|
ActionView::Base.include UiBibzForm
|
23
23
|
end
|
24
|
-
|
25
|
-
config.after_initialize do
|
26
|
-
warn '[Ui Bibz] Ui Bibz is not configured in the application and will use the default values. Use `rails generate ui_bibz:install` to generate the Ui Bibz configuration.' unless UiBibz.configured?
|
27
|
-
end
|
28
24
|
end
|
29
25
|
end
|
30
26
|
end
|
@@ -40,6 +40,8 @@ module UiBibz::Ui::Concerns::CardItemableConcern #:nodoc:
|
|
40
40
|
|
41
41
|
# Add Image which is a component
|
42
42
|
def image(content = nil, options = nil, html_options = nil, &block)
|
43
|
+
# Add position top to the image if the image is in top of the card
|
44
|
+
options = (options || {}).merge(position: :top) if @header.nil? && @items.empty? && options.try(:[], :position).nil?
|
43
45
|
@items << UiBibz::Ui::Core::Boxes::Components::CardImage.new(content, options, html_options, &block).render
|
44
46
|
end
|
45
47
|
|
@@ -5,11 +5,11 @@ module UiBibz::Ui::Concerns::HtmlConcern #:nodoc:
|
|
5
5
|
|
6
6
|
included do
|
7
7
|
def html(content = nil, &block)
|
8
|
-
if
|
8
|
+
if block.nil?
|
9
|
+
@items << content
|
10
|
+
else
|
9
11
|
context = eval('self', block.binding) # rubocop:disable Style/EvalWithLocation
|
10
12
|
@items << context.capture(&block)
|
11
|
-
else
|
12
|
-
@items << content
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
@@ -70,6 +70,14 @@ module UiBibz::Ui::Core::Boxes::Components
|
|
70
70
|
@items << UiBibz::Ui::Core::Boxes::Components::Body::CardBodyText.new(content, options, html_options, &block).render
|
71
71
|
end
|
72
72
|
|
73
|
+
def row(content = nil, options = nil, html_options = nil, &block)
|
74
|
+
@items << if tapped?(block)
|
75
|
+
UiBibz::Ui::Core::Layouts::Row.new(content, options, html_options).tap(&block).render
|
76
|
+
else
|
77
|
+
UiBibz::Ui::Core::Layouts::Row.new(content, options, html_options, &block).render
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
73
81
|
private
|
74
82
|
|
75
83
|
def component_html_classes
|
@@ -38,7 +38,11 @@ module UiBibz::Ui::Core::Boxes::Components
|
|
38
38
|
# Render html tag
|
39
39
|
def pre_render
|
40
40
|
# image_tag content, html_options
|
41
|
-
|
41
|
+
if options[:pack]
|
42
|
+
image_pack_tag content, html_options
|
43
|
+
else
|
44
|
+
image_tag content, html_options
|
45
|
+
end
|
42
46
|
end
|
43
47
|
|
44
48
|
private
|
@@ -48,7 +52,7 @@ module UiBibz::Ui::Core::Boxes::Components
|
|
48
52
|
end
|
49
53
|
|
50
54
|
def position
|
51
|
-
"card-img-#{@options[:position] || :top}"
|
55
|
+
"card-img-#{@options[:position] || :top}" if @options[:position]
|
52
56
|
end
|
53
57
|
end
|
54
58
|
end
|
@@ -16,12 +16,11 @@ module UiBibz::Ui::Core::Forms::Buttons
|
|
16
16
|
# You can add HTML attributes using the +html_options+.
|
17
17
|
# You can pass arguments in options attribute:
|
18
18
|
# * +status+ - status of element with symbol value:
|
19
|
-
# (+:primary+, +:secondary+, +:info+, +:warning+, +:danger+, +:
|
19
|
+
# (+:primary+, +:secondary+, +:success+, :info+, +:warning+, +:danger+, +:light+, +:dark+)
|
20
20
|
# * +size+
|
21
21
|
# (+:xs+, +:sm+, +:lg+)
|
22
22
|
# * +outline+ - Boolean
|
23
23
|
# * +state+ - Symbol (+:active+, +:disabled)
|
24
|
-
# * +type+ - Symbol (+:outline)
|
25
24
|
# * +collapse+ - String
|
26
25
|
# * +expand_collaspe+ - Boolean
|
27
26
|
# * +glyph+ - Add glyph with name or hash options
|
@@ -63,13 +62,13 @@ module UiBibz::Ui::Core::Forms::Buttons
|
|
63
62
|
def button_html_tag
|
64
63
|
content_tag :button, html_options do
|
65
64
|
concat spinner_html unless options[:spinner].nil?
|
66
|
-
concat glyph_and_content_html(
|
65
|
+
concat glyph_and_content_html(@content)
|
67
66
|
concat badge_html unless options[:badge].nil?
|
68
67
|
end
|
69
68
|
end
|
70
69
|
|
71
70
|
def component_html_classes
|
72
|
-
super << ['btn', size
|
71
|
+
super << ['btn', size]
|
73
72
|
end
|
74
73
|
|
75
74
|
def component_html_options
|
@@ -107,14 +106,6 @@ module UiBibz::Ui::Core::Forms::Buttons
|
|
107
106
|
{ 'aria-pressed' => true }
|
108
107
|
end
|
109
108
|
|
110
|
-
def type
|
111
|
-
'btn-block' if options[:type] == :block
|
112
|
-
end
|
113
|
-
|
114
|
-
def without_text
|
115
|
-
'without-text' unless options[:text].nil?
|
116
|
-
end
|
117
|
-
|
118
109
|
def action
|
119
110
|
add_html_data('action', value: options[:action]) unless options[:action].nil?
|
120
111
|
end
|
@@ -22,7 +22,6 @@ module UiBibz::Ui::Core::Forms::Buttons
|
|
22
22
|
# * +url+ - String url
|
23
23
|
# * +outline+ - Boolean
|
24
24
|
# * +state+ - Symbol (+:active+, +:disabled)
|
25
|
-
# * +type+ - Symbol (+:block)
|
26
25
|
# * +glyph+ - Add glyph with name or hash options
|
27
26
|
# * +name+ - String
|
28
27
|
# * +size+ - Integer
|
@@ -63,7 +62,7 @@ module UiBibz::Ui::Core::Forms::Buttons
|
|
63
62
|
def button_link_html_tag
|
64
63
|
link_to link_url, html_options do
|
65
64
|
concat spinner_html unless options[:spinner].nil?
|
66
|
-
concat glyph_and_content_html(
|
65
|
+
concat glyph_and_content_html(@content)
|
67
66
|
concat badge_html unless options[:badge].nil?
|
68
67
|
end
|
69
68
|
end
|
@@ -20,7 +20,6 @@ module UiBibz::Ui::Core::Forms::Buttons
|
|
20
20
|
# (+:xs+, +:sm+, +:lg+)
|
21
21
|
# * +outline+ - Boolean
|
22
22
|
# * +state+ - Symbol (+:active+, +:disabled)
|
23
|
-
# * +type+ - Symbol (+:outline)
|
24
23
|
# * +glyph+ - Add glyph with name or hash options
|
25
24
|
# * +name+ - String
|
26
25
|
# * +size+ - Integer
|
@@ -20,7 +20,8 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
20
20
|
# * +inline+ - Boolean
|
21
21
|
# * +checked+ - Boolean
|
22
22
|
# * +action+ - String Stimulus Option
|
23
|
-
# * +label+ - String
|
23
|
+
# * +label+ - [String/Boolean]
|
24
|
+
# * +boolean+ - Boolean Add an hidden field for rails
|
24
25
|
#
|
25
26
|
# ==== Signatures
|
26
27
|
#
|
@@ -58,7 +59,7 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
58
59
|
|
59
60
|
def checkbox_field_html_tag
|
60
61
|
content_tag(:div, html_options.except(:id, 'data-action')) do
|
61
|
-
concat hidden_field_tag content, '0', id: "#{content}-hidden"
|
62
|
+
concat hidden_field_tag content, '0', id: "#{content}-hidden" if options[:boolean]
|
62
63
|
concat check_box_tag content, options[:value] || '1', options[:checked] || html_options[:checked], checkbox_html_options
|
63
64
|
concat label_tag(label_name, label_content, class: 'form-check-label') if options[:label] != false
|
64
65
|
end
|
@@ -69,8 +70,10 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
69
70
|
disabled: disabled?,
|
70
71
|
indeterminate: options[:indeterminate],
|
71
72
|
"data-action": options[:action],
|
72
|
-
class: 'form-check-input'
|
73
|
-
}
|
73
|
+
class: UiBibz::Utils::Screwdriver.join_classes('form-check-input', input_status)
|
74
|
+
}.tap do |html|
|
75
|
+
html[:id] = html_options[:id] if html_options[:id]
|
76
|
+
end
|
74
77
|
end
|
75
78
|
|
76
79
|
def label_name
|
@@ -92,6 +95,12 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
92
95
|
super << component_wrapper_html_classes
|
93
96
|
end
|
94
97
|
|
98
|
+
def input_status
|
99
|
+
"form-check-input-#{options[:status]}" if options[:status]
|
100
|
+
end
|
101
|
+
|
102
|
+
def status; end
|
103
|
+
|
95
104
|
def inline
|
96
105
|
'form-check-inline' if options[:inline]
|
97
106
|
end
|
@@ -67,7 +67,7 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
67
67
|
{
|
68
68
|
disabled: options[:state] == :disabled,
|
69
69
|
"data-action": options[:action],
|
70
|
-
class: 'form-check-input'
|
70
|
+
class: UiBibz::Utils::Screwdriver.join_classes('form-check-input', input_status)
|
71
71
|
}
|
72
72
|
end
|
73
73
|
|
@@ -79,6 +79,12 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
79
79
|
super << component_wrapper_html_classes
|
80
80
|
end
|
81
81
|
|
82
|
+
def status; end
|
83
|
+
|
84
|
+
def input_status
|
85
|
+
"form-check-input-#{options[:status]}" if options[:status]
|
86
|
+
end
|
87
|
+
|
82
88
|
def inline
|
83
89
|
'form-check-inline' if options[:inline]
|
84
90
|
end
|
@@ -43,6 +43,10 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
43
43
|
class SwitchField < UiBibz::Ui::Core::Forms::Choices::CheckboxField
|
44
44
|
private
|
45
45
|
|
46
|
+
def component_options
|
47
|
+
{ boolean: true }
|
48
|
+
end
|
49
|
+
|
46
50
|
def component_html_classes
|
47
51
|
['form-check', 'form-switch', inline]
|
48
52
|
end
|
@@ -27,6 +27,10 @@ module UiBibz::Ui::Core::Forms::Dropdowns
|
|
27
27
|
# * +size+ - Integer
|
28
28
|
# * +type+ - Symbol
|
29
29
|
# * +html_button+ - Hash
|
30
|
+
# * +position+ - Symbol
|
31
|
+
# (+:up+, +:right+, +:down+, +:left+)
|
32
|
+
# * +alignment+ - Symbol
|
33
|
+
# (+:right)
|
30
34
|
#
|
31
35
|
# ==== Signatures
|
32
36
|
#
|
@@ -103,36 +107,36 @@ module UiBibz::Ui::Core::Forms::Dropdowns
|
|
103
107
|
protected
|
104
108
|
|
105
109
|
def component_html_classes
|
106
|
-
[
|
110
|
+
[position, open, inline, without_caret, keep_open]
|
107
111
|
end
|
108
112
|
|
109
113
|
def button_content
|
110
|
-
glyph_and_content_html(
|
114
|
+
glyph_and_content_html(@content)
|
111
115
|
end
|
112
116
|
|
113
117
|
def button_html
|
114
118
|
html_button = options[:html_button] || {}
|
115
119
|
if options[:tag] == :a
|
116
|
-
content_tag dropdown_tag, button_content, { class: join_classes('btn', button_status, state, size, 'dropdown-toggle'),
|
120
|
+
content_tag dropdown_tag, button_content, { class: join_classes('btn', button_status, state, size, 'dropdown-toggle'), role: 'button', 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false, 'id' => id }.merge(html_button)
|
117
121
|
else
|
118
122
|
content_tag dropdown_tag, button_content, { class: join_classes('btn', button_status, state, size, 'dropdown-toggle'), type: 'button', 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false, 'id' => id }.merge(html_button)
|
119
123
|
end
|
120
124
|
end
|
121
125
|
|
122
126
|
def ul_html
|
123
|
-
content_tag :div, @items.join.html_safe, class: join_classes('dropdown-menu', theme,
|
127
|
+
content_tag :div, @items.join.html_safe, class: join_classes('dropdown-menu', theme, alignment, open), 'arial-labelledby' => id
|
124
128
|
end
|
125
129
|
|
126
130
|
def dropdown_tag
|
127
131
|
options[:tag] || :button
|
128
132
|
end
|
129
133
|
|
130
|
-
def
|
131
|
-
"dropdown-menu-#{@options[:
|
134
|
+
def alignment
|
135
|
+
"dropdown-menu-#{@options[:alignment]}" unless @options[:alignment].nil?
|
132
136
|
end
|
133
137
|
|
134
|
-
def
|
135
|
-
@options[:
|
138
|
+
def position
|
139
|
+
"drop#{@options[:position] || 'down'}"
|
136
140
|
end
|
137
141
|
|
138
142
|
def open
|
@@ -144,7 +148,7 @@ module UiBibz::Ui::Core::Forms::Dropdowns
|
|
144
148
|
end
|
145
149
|
|
146
150
|
def inline
|
147
|
-
'btn-group' if @options[:inline]
|
151
|
+
'btn-group' if @options[:inline] || @options[:alignment]
|
148
152
|
end
|
149
153
|
|
150
154
|
def without_caret
|