ui_bibz 3.0.0.beta9 → 3.0.0.beta14
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +54 -54
- data/lib/ui_bibz/infos.rb +1 -1
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_radio_field_input.rb +2 -13
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_switch_field_input.rb +1 -13
- data/lib/ui_bibz/rails/engine.rb +2 -2
- data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +28 -17
- data/lib/ui_bibz/ui/core/forms/choices/components/choice.rb +2 -0
- data/lib/ui_bibz/ui/core/forms/choices/radio_field.rb +5 -33
- data/lib/ui_bibz/ui/core/forms/choices/switch_field.rb +2 -2
- data/lib/ui_bibz/ui/ux/tables/extensions/actionable.rb +1 -1
- data/lib/ui_bibz/ui/ux/tables/table.rb +5 -8
- data/lib/ui_bibz/ui/ux/tables/table_card.rb +2 -1
- data/test/simple_form_test.rb +12 -2
- data/test/ui/core/forms/choices/checkbox_field_test.rb +7 -0
- data/test/ui/core/forms/choices/choice_group_test.rb +3 -3
- data/test/ui/core/forms/choices/radio_field_test.rb +7 -0
- data/test/ui/core/forms/surrounds/surround_field_test.rb +1 -1
- data/test/ui/ux/tables/table_card_test.rb +37 -0
- data/test/ui/ux/tables/table_test.rb +8 -5
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1c7d0fa9075ddd53e329885fd916d87ddd4c0a83f704323122c45c8e2d35cd48
|
|
4
|
+
data.tar.gz: 791f22fc1fa9a1d41f1fcb91eefc181c93ca3827a295acec4a6814f532735528
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8f13b92c62b6dad28625dfad5ccaee634f85a8dcc62979bf208e50e182ee86cfcf9a1a669290f950354795003b0cefe6323ee6623f66471ded08bf8aaf19b28c
|
|
7
|
+
data.tar.gz: 226d1646f90d50e034b43753a3cb79b944b4f9b617d3d126fe582c384d6e4af063d9baf5bb9dbf7f2836d5bec2d39e82fb0dadee505916a487d9899d05fe26b3
|
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.beta14)
|
|
5
5
|
will-paginate-i18n
|
|
6
6
|
will_paginate (~> 3.3.0)
|
|
7
7
|
will_paginate-bootstrap4
|
|
@@ -9,56 +9,56 @@ PATH
|
|
|
9
9
|
GEM
|
|
10
10
|
remote: https://rubygems.org/
|
|
11
11
|
specs:
|
|
12
|
-
actioncable (6.0.3.
|
|
13
|
-
actionpack (= 6.0.3.
|
|
12
|
+
actioncable (6.0.3.5)
|
|
13
|
+
actionpack (= 6.0.3.5)
|
|
14
14
|
nio4r (~> 2.0)
|
|
15
15
|
websocket-driver (>= 0.6.1)
|
|
16
|
-
actionmailbox (6.0.3.
|
|
17
|
-
actionpack (= 6.0.3.
|
|
18
|
-
activejob (= 6.0.3.
|
|
19
|
-
activerecord (= 6.0.3.
|
|
20
|
-
activestorage (= 6.0.3.
|
|
21
|
-
activesupport (= 6.0.3.
|
|
16
|
+
actionmailbox (6.0.3.5)
|
|
17
|
+
actionpack (= 6.0.3.5)
|
|
18
|
+
activejob (= 6.0.3.5)
|
|
19
|
+
activerecord (= 6.0.3.5)
|
|
20
|
+
activestorage (= 6.0.3.5)
|
|
21
|
+
activesupport (= 6.0.3.5)
|
|
22
22
|
mail (>= 2.7.1)
|
|
23
|
-
actionmailer (6.0.3.
|
|
24
|
-
actionpack (= 6.0.3.
|
|
25
|
-
actionview (= 6.0.3.
|
|
26
|
-
activejob (= 6.0.3.
|
|
23
|
+
actionmailer (6.0.3.5)
|
|
24
|
+
actionpack (= 6.0.3.5)
|
|
25
|
+
actionview (= 6.0.3.5)
|
|
26
|
+
activejob (= 6.0.3.5)
|
|
27
27
|
mail (~> 2.5, >= 2.5.4)
|
|
28
28
|
rails-dom-testing (~> 2.0)
|
|
29
|
-
actionpack (6.0.3.
|
|
30
|
-
actionview (= 6.0.3.
|
|
31
|
-
activesupport (= 6.0.3.
|
|
29
|
+
actionpack (6.0.3.5)
|
|
30
|
+
actionview (= 6.0.3.5)
|
|
31
|
+
activesupport (= 6.0.3.5)
|
|
32
32
|
rack (~> 2.0, >= 2.0.8)
|
|
33
33
|
rack-test (>= 0.6.3)
|
|
34
34
|
rails-dom-testing (~> 2.0)
|
|
35
35
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
36
|
-
actiontext (6.0.3.
|
|
37
|
-
actionpack (= 6.0.3.
|
|
38
|
-
activerecord (= 6.0.3.
|
|
39
|
-
activestorage (= 6.0.3.
|
|
40
|
-
activesupport (= 6.0.3.
|
|
36
|
+
actiontext (6.0.3.5)
|
|
37
|
+
actionpack (= 6.0.3.5)
|
|
38
|
+
activerecord (= 6.0.3.5)
|
|
39
|
+
activestorage (= 6.0.3.5)
|
|
40
|
+
activesupport (= 6.0.3.5)
|
|
41
41
|
nokogiri (>= 1.8.5)
|
|
42
|
-
actionview (6.0.3.
|
|
43
|
-
activesupport (= 6.0.3.
|
|
42
|
+
actionview (6.0.3.5)
|
|
43
|
+
activesupport (= 6.0.3.5)
|
|
44
44
|
builder (~> 3.1)
|
|
45
45
|
erubi (~> 1.4)
|
|
46
46
|
rails-dom-testing (~> 2.0)
|
|
47
47
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
48
|
-
activejob (6.0.3.
|
|
49
|
-
activesupport (= 6.0.3.
|
|
48
|
+
activejob (6.0.3.5)
|
|
49
|
+
activesupport (= 6.0.3.5)
|
|
50
50
|
globalid (>= 0.3.6)
|
|
51
|
-
activemodel (6.0.3.
|
|
52
|
-
activesupport (= 6.0.3.
|
|
53
|
-
activerecord (6.0.3.
|
|
54
|
-
activemodel (= 6.0.3.
|
|
55
|
-
activesupport (= 6.0.3.
|
|
56
|
-
activestorage (6.0.3.
|
|
57
|
-
actionpack (= 6.0.3.
|
|
58
|
-
activejob (= 6.0.3.
|
|
59
|
-
activerecord (= 6.0.3.
|
|
51
|
+
activemodel (6.0.3.5)
|
|
52
|
+
activesupport (= 6.0.3.5)
|
|
53
|
+
activerecord (6.0.3.5)
|
|
54
|
+
activemodel (= 6.0.3.5)
|
|
55
|
+
activesupport (= 6.0.3.5)
|
|
56
|
+
activestorage (6.0.3.5)
|
|
57
|
+
actionpack (= 6.0.3.5)
|
|
58
|
+
activejob (= 6.0.3.5)
|
|
59
|
+
activerecord (= 6.0.3.5)
|
|
60
60
|
marcel (~> 0.3.1)
|
|
61
|
-
activesupport (6.0.3.
|
|
61
|
+
activesupport (6.0.3.5)
|
|
62
62
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
63
63
|
i18n (>= 0.7, < 2)
|
|
64
64
|
minitest (~> 5.1)
|
|
@@ -128,29 +128,29 @@ GEM
|
|
|
128
128
|
rack (2.2.3)
|
|
129
129
|
rack-test (1.1.0)
|
|
130
130
|
rack (>= 1.0, < 3)
|
|
131
|
-
rails (6.0.3.
|
|
132
|
-
actioncable (= 6.0.3.
|
|
133
|
-
actionmailbox (= 6.0.3.
|
|
134
|
-
actionmailer (= 6.0.3.
|
|
135
|
-
actionpack (= 6.0.3.
|
|
136
|
-
actiontext (= 6.0.3.
|
|
137
|
-
actionview (= 6.0.3.
|
|
138
|
-
activejob (= 6.0.3.
|
|
139
|
-
activemodel (= 6.0.3.
|
|
140
|
-
activerecord (= 6.0.3.
|
|
141
|
-
activestorage (= 6.0.3.
|
|
142
|
-
activesupport (= 6.0.3.
|
|
131
|
+
rails (6.0.3.5)
|
|
132
|
+
actioncable (= 6.0.3.5)
|
|
133
|
+
actionmailbox (= 6.0.3.5)
|
|
134
|
+
actionmailer (= 6.0.3.5)
|
|
135
|
+
actionpack (= 6.0.3.5)
|
|
136
|
+
actiontext (= 6.0.3.5)
|
|
137
|
+
actionview (= 6.0.3.5)
|
|
138
|
+
activejob (= 6.0.3.5)
|
|
139
|
+
activemodel (= 6.0.3.5)
|
|
140
|
+
activerecord (= 6.0.3.5)
|
|
141
|
+
activestorage (= 6.0.3.5)
|
|
142
|
+
activesupport (= 6.0.3.5)
|
|
143
143
|
bundler (>= 1.3.0)
|
|
144
|
-
railties (= 6.0.3.
|
|
144
|
+
railties (= 6.0.3.5)
|
|
145
145
|
sprockets-rails (>= 2.0.0)
|
|
146
146
|
rails-dom-testing (2.0.3)
|
|
147
147
|
activesupport (>= 4.2.0)
|
|
148
148
|
nokogiri (>= 1.6)
|
|
149
149
|
rails-html-sanitizer (1.3.0)
|
|
150
150
|
loofah (~> 2.3)
|
|
151
|
-
railties (6.0.3.
|
|
152
|
-
actionpack (= 6.0.3.
|
|
153
|
-
activesupport (= 6.0.3.
|
|
151
|
+
railties (6.0.3.5)
|
|
152
|
+
actionpack (= 6.0.3.5)
|
|
153
|
+
activesupport (= 6.0.3.5)
|
|
154
154
|
method_source
|
|
155
155
|
rake (>= 0.8.7)
|
|
156
156
|
thor (>= 0.20.3, < 2.0)
|
|
@@ -182,9 +182,9 @@ GEM
|
|
|
182
182
|
ruby_parser (3.15.1)
|
|
183
183
|
sexp_processor (~> 4.9)
|
|
184
184
|
sexp_processor (4.15.2)
|
|
185
|
-
simple_form (5.0
|
|
186
|
-
actionpack (>= 5.
|
|
187
|
-
activemodel (>= 5.
|
|
185
|
+
simple_form (5.1.0)
|
|
186
|
+
actionpack (>= 5.2)
|
|
187
|
+
activemodel (>= 5.2)
|
|
188
188
|
simplecov (0.21.2)
|
|
189
189
|
docile (~> 1.1)
|
|
190
190
|
simplecov-html (~> 0.11)
|
data/lib/ui_bibz/infos.rb
CHANGED
|
@@ -1,20 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module UiBibzInputs
|
|
4
|
-
class UiRadioFieldInput <
|
|
5
|
-
include UiBibz::Ui::Core::Forms::Choices
|
|
6
|
-
|
|
4
|
+
class UiRadioFieldInput < UiCheckboxFieldInput
|
|
7
5
|
def input(_wrapper_options)
|
|
8
|
-
|
|
9
|
-
options[:item_wrapper_tag] = :div
|
|
10
|
-
options[:item_wrapper_class] = i.html_options[:class]
|
|
11
|
-
|
|
12
|
-
label_method, value_method = detect_collection_methods
|
|
13
|
-
|
|
14
|
-
@builder.send(:collection_radio_buttons,
|
|
15
|
-
attribute_name, collection, value_method, label_method,
|
|
16
|
-
input_options, i.html_options,
|
|
17
|
-
&collection_block_for_nested_boolean_style)
|
|
6
|
+
UiBibz::Ui::Core::Forms::Choices::RadioField.new(input_attribute_name, new_options, input_html_options).render
|
|
18
7
|
end
|
|
19
8
|
end
|
|
20
9
|
end
|
|
@@ -1,23 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module UiBibzInputs
|
|
4
|
-
class UiSwitchFieldInput <
|
|
4
|
+
class UiSwitchFieldInput < UiCheckboxFieldInput
|
|
5
5
|
include UiBibz::Ui::Core::Forms::Choices
|
|
6
6
|
|
|
7
7
|
def input(_wrapper_options)
|
|
8
8
|
UiBibz::Ui::Core::Forms::Choices::SwitchField.new(input_attribute_name, new_options, new_input_html_options).render
|
|
9
9
|
end
|
|
10
|
-
|
|
11
|
-
def new_input_html_options
|
|
12
|
-
input_html_options.merge({ checked: value.nil? ? false : value })
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def value
|
|
16
|
-
@value ||= @builder.object.send(attribute_name)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def new_options
|
|
20
|
-
options.merge({ label: attribute_name.to_s.titleize })
|
|
21
|
-
end
|
|
22
10
|
end
|
|
23
11
|
end
|
data/lib/ui_bibz/rails/engine.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# to load pagination in rails app
|
|
4
|
-
require 'will_paginate' if
|
|
5
|
-
require 'simple_form' if
|
|
4
|
+
require 'will_paginate' if Gem.loaded_specs.key?('will_paginate')
|
|
5
|
+
require 'simple_form' if Gem.loaded_specs.key?('simple_form')
|
|
6
6
|
|
|
7
7
|
module UiBibz
|
|
8
8
|
module Rails
|
|
@@ -22,6 +22,8 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
|
22
22
|
# * +action+ - String Stimulus Option
|
|
23
23
|
# * +label+ - [String/Boolean]
|
|
24
24
|
# * +boolean+ - Boolean Add an hidden field for rails
|
|
25
|
+
# * +wrapper_html+: - Hash html_options for the wrapper
|
|
26
|
+
# * +label_html+: - Hash html_options for the label
|
|
25
27
|
#
|
|
26
28
|
# ==== Signatures
|
|
27
29
|
#
|
|
@@ -52,30 +54,35 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
|
52
54
|
|
|
53
55
|
# Render html tag
|
|
54
56
|
def pre_render
|
|
55
|
-
|
|
57
|
+
content_tag :div, wrapper_html_options do
|
|
58
|
+
concat hidden_field_tag(content, '0', id: "#{content}-hidden") if options[:boolean]
|
|
59
|
+
concat check_box_tag(content, options[:value] || '1', options[:checked] || html_options[:checked], checkbox_html_options)
|
|
60
|
+
concat label_tag(label_name, label_content, label_html_options) if options[:label] != false
|
|
61
|
+
end
|
|
56
62
|
end
|
|
57
63
|
|
|
58
64
|
private
|
|
59
65
|
|
|
60
|
-
def
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
concat check_box_tag content, options[:value] || '1', options[:checked] || html_options[:checked], checkbox_html_options
|
|
64
|
-
concat label_tag(label_name, label_content, class: 'form-check-label') if options[:label] != false
|
|
66
|
+
def wrapper_html_options
|
|
67
|
+
(options[:wrapper_html] || {}).tap do |option|
|
|
68
|
+
option[:class] = UiBibz::Utils::Screwdriver.join_classes(wrapper_classes, inline, options[:wrapper_html].try(:[], :class))
|
|
65
69
|
end
|
|
66
70
|
end
|
|
67
71
|
|
|
68
|
-
def
|
|
69
|
-
{
|
|
70
|
-
|
|
71
|
-
indeterminate: options[:indeterminate],
|
|
72
|
-
"data-action": options[:action],
|
|
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]
|
|
72
|
+
def label_html_options
|
|
73
|
+
(options[:label_html] || {}).tap do |option|
|
|
74
|
+
option[:class] = UiBibz::Utils::Screwdriver.join_classes(label_classes, options[:label_html].try(:[], :class))
|
|
76
75
|
end
|
|
77
76
|
end
|
|
78
77
|
|
|
78
|
+
def checkbox_html_options
|
|
79
|
+
html_options.merge({
|
|
80
|
+
disabled: disabled?,
|
|
81
|
+
checked: html_options[:checked] || options[:state] == :active,
|
|
82
|
+
indeterminate: options[:indeterminate]
|
|
83
|
+
})
|
|
84
|
+
end
|
|
85
|
+
|
|
79
86
|
def label_name
|
|
80
87
|
html_options[:id] || content
|
|
81
88
|
end
|
|
@@ -92,7 +99,7 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
|
92
99
|
end
|
|
93
100
|
|
|
94
101
|
def component_html_classes
|
|
95
|
-
super <<
|
|
102
|
+
super << ['form-check-input', input_status]
|
|
96
103
|
end
|
|
97
104
|
|
|
98
105
|
def input_status
|
|
@@ -105,8 +112,12 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
|
105
112
|
'form-check-inline' if options[:inline]
|
|
106
113
|
end
|
|
107
114
|
|
|
108
|
-
def
|
|
109
|
-
|
|
115
|
+
def wrapper_classes
|
|
116
|
+
'form-check'
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def label_classes
|
|
120
|
+
'form-check-label'
|
|
110
121
|
end
|
|
111
122
|
end
|
|
112
123
|
end
|
|
@@ -21,6 +21,8 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
|
21
21
|
# * +inline+ - Boolean
|
|
22
22
|
# * +action+ - String Stimulus Option
|
|
23
23
|
# * +label+ - String
|
|
24
|
+
# * +wrapper_html+: - Hash html_options for the wrapper
|
|
25
|
+
# * +label_html+: - Hash html_options for the label
|
|
24
26
|
#
|
|
25
27
|
# ==== Signatures
|
|
26
28
|
#
|
|
@@ -51,46 +53,16 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
|
51
53
|
|
|
52
54
|
# Render html tag
|
|
53
55
|
def pre_render
|
|
54
|
-
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
private
|
|
58
|
-
|
|
59
|
-
def radio_field_html_tag
|
|
60
|
-
content_tag :div, html_options.except(:id) do
|
|
56
|
+
content_tag :div, wrapper_html_options do
|
|
61
57
|
concat radio_button_tag content, options[:value], options[:checked] || false, checkbox_html_options
|
|
62
58
|
concat label_tag(label_name, label_content, class: 'form-check-label') if options[:label] != false
|
|
63
59
|
end
|
|
64
60
|
end
|
|
65
61
|
|
|
66
|
-
|
|
67
|
-
{
|
|
68
|
-
disabled: options[:state] == :disabled,
|
|
69
|
-
"data-action": options[:action],
|
|
70
|
-
class: UiBibz::Utils::Screwdriver.join_classes('form-check-input', input_status)
|
|
71
|
-
}
|
|
72
|
-
end
|
|
62
|
+
private
|
|
73
63
|
|
|
74
64
|
def label_name
|
|
75
|
-
"#{content}_#{options[:value]}"
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
def component_html_classes
|
|
79
|
-
super << component_wrapper_html_classes
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def status; end
|
|
83
|
-
|
|
84
|
-
def input_status
|
|
85
|
-
"form-check-input-#{options[:status]}" if options[:status]
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def inline
|
|
89
|
-
'form-check-inline' if options[:inline]
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
def component_wrapper_html_classes
|
|
93
|
-
['form-check', inline]
|
|
65
|
+
html_options[:id] || "#{content}_#{options[:value]}"
|
|
94
66
|
end
|
|
95
67
|
end
|
|
96
68
|
end
|
|
@@ -35,7 +35,7 @@ module UiBibz::Ui::Ux::Tables
|
|
|
35
35
|
|
|
36
36
|
return if default_actions? != true && @actions.raw_list.empty?
|
|
37
37
|
|
|
38
|
-
UiBibz::Ui::Core::Forms::Dropdowns::Dropdown.new(dropdown_action_name, {
|
|
38
|
+
UiBibz::Ui::Core::Forms::Dropdowns::Dropdown.new(dropdown_action_name, { size: :sm, glyph: actions_glyph }, { class: 'dropdown-action' }).tap do |d|
|
|
39
39
|
actions_links(record).each do |l|
|
|
40
40
|
d.html l.to_s.html_safe
|
|
41
41
|
end
|
|
@@ -42,7 +42,8 @@ module UiBibz::Ui::Ux::Tables
|
|
|
42
42
|
# * +size+
|
|
43
43
|
# (+:sm+)
|
|
44
44
|
# * +responsive+ - Boolean
|
|
45
|
-
# * +
|
|
45
|
+
# * +breakpoint+
|
|
46
|
+
# (+:sm+, +:md+, +:lg+, +:xl+, +:xxl+)
|
|
46
47
|
#
|
|
47
48
|
# ==== Signatures
|
|
48
49
|
#
|
|
@@ -118,7 +119,7 @@ module UiBibz::Ui::Ux::Tables
|
|
|
118
119
|
|
|
119
120
|
# Render html tag
|
|
120
121
|
def pre_render
|
|
121
|
-
table_html
|
|
122
|
+
options[:responsive] ? content_tag(:div, table_html, class: responsive) : table_html
|
|
122
123
|
end
|
|
123
124
|
|
|
124
125
|
# Store must be generated by *table_search_pagination* method
|
|
@@ -184,7 +185,7 @@ module UiBibz::Ui::Ux::Tables
|
|
|
184
185
|
private
|
|
185
186
|
|
|
186
187
|
def component_html_classes
|
|
187
|
-
['table', striped, bordered, hoverable, size
|
|
188
|
+
['table', striped, bordered, hoverable, size]
|
|
188
189
|
end
|
|
189
190
|
|
|
190
191
|
def status
|
|
@@ -208,11 +209,7 @@ module UiBibz::Ui::Ux::Tables
|
|
|
208
209
|
end
|
|
209
210
|
|
|
210
211
|
def responsive
|
|
211
|
-
'table-responsive' unless @options[:responsive].nil?
|
|
212
|
-
end
|
|
213
|
-
|
|
214
|
-
def reflow
|
|
215
|
-
'table-reflow' unless @options[:reflow].nil?
|
|
212
|
+
['table-responsive', @options[:breakpoint]].compact.join('-') unless @options[:responsive].nil?
|
|
216
213
|
end
|
|
217
214
|
end
|
|
218
215
|
end
|
data/test/simple_form_test.rb
CHANGED
|
@@ -21,6 +21,16 @@ class SimpleFormTest < ActionView::TestCase
|
|
|
21
21
|
@user = @users.first
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
+
test 'simple form input' do
|
|
25
|
+
actual = simple_form_for @user do |f|
|
|
26
|
+
f.input :name_fr
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group string optional user_name_fr\"><label class=\"control-label string optional\" for=\"user_name_fr\">Name fr</label><input class=\"form-control string optional\" type=\"text\" value=\"test1\" name=\"user[name_fr]\" id=\"user_name_fr\" /></div></form>"
|
|
30
|
+
|
|
31
|
+
assert_equal expected, actual
|
|
32
|
+
end
|
|
33
|
+
|
|
24
34
|
test 'auto complete field input in simple form' do
|
|
25
35
|
actual = simple_form_for @user do |f|
|
|
26
36
|
f.input :name_fr, as: :ui_auto_complete_field, collection: @users, label_method: :name_fr
|
|
@@ -122,10 +132,10 @@ test1</textarea></div></form>"
|
|
|
122
132
|
|
|
123
133
|
test 'radio field input in simple form' do
|
|
124
134
|
actual = simple_form_for @user do |f|
|
|
125
|
-
f.input :name_fr, as: :ui_radio_field,
|
|
135
|
+
f.input :name_fr, as: :ui_radio_field, label: 'Radio 1', input_html: { id: "radio_1" }
|
|
126
136
|
end
|
|
127
137
|
|
|
128
|
-
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_radio_field optional user_name_fr\"><
|
|
138
|
+
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_radio_field optional user_name_fr\"><div class=\"form-check\"><input type=\"radio\" name=\"user[name_fr]\" id=\"radio_1\" value=\"test1\" class=\"ui_radio_field optional form-check-input\" /><label class=\"form-check-label\" for=\"radio_1\">Radio 1</label></div></div></form>"
|
|
129
139
|
|
|
130
140
|
assert_equal expected, actual
|
|
131
141
|
end
|
|
@@ -16,4 +16,11 @@ class CheckboxFieldTest < ActionView::TestCase
|
|
|
16
16
|
|
|
17
17
|
assert_equal expected, actual
|
|
18
18
|
end
|
|
19
|
+
|
|
20
|
+
test 'checkbox_field with options and html_options' do
|
|
21
|
+
actual = UiBibz::Ui::Core::Forms::Choices::CheckboxField.new('John', action: 'click->controller#action', label_html: { class: 'test' }, wrapper_html: { title: "My title" }).render
|
|
22
|
+
expected = "<div title=\"My title\" class=\"form-check\"><input type=\"checkbox\" name=\"John\" id=\"John\" value=\"1\" data-action=\"click->controller#action\" class=\"form-check-input\" /><label class=\"form-check-label test\" for=\"John\">John</label></div>"
|
|
23
|
+
|
|
24
|
+
assert_equal expected, actual
|
|
25
|
+
end
|
|
19
26
|
end
|
|
@@ -11,7 +11,7 @@ class ChoiceGroupTest < ActionView::TestCase
|
|
|
11
11
|
bc.choice 'Checkbox 2', state: :active
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
expected = "<div data-toggle=\"buttons\" class=\"btn-group button-choice btn-group-toggle\"><input type=\"checkbox\" autocomplete=\"off\" class=\"btn-check\" id=\"#{actual.items.first.input_options[:id]}\" /><label class=\"btn-secondary btn\" for=\"#{actual.items.first.input_options[:id]}\">Checkbox 1</label><input type=\"checkbox\" autocomplete=\"off\" class=\"btn-check\" checked=\"checked\" id=\"#{actual.items.last.input_options[:id]}\" /><label class=\"
|
|
14
|
+
expected = "<div data-toggle=\"buttons\" class=\"btn-group button-choice btn-group-toggle\"><input type=\"checkbox\" autocomplete=\"off\" class=\"btn-check\" id=\"#{actual.items.first.input_options[:id]}\" /><label class=\"btn-secondary btn\" for=\"#{actual.items.first.input_options[:id]}\">Checkbox 1</label><input type=\"checkbox\" autocomplete=\"off\" class=\"btn-check\" checked=\"checked\" id=\"#{actual.items.last.input_options[:id]}\" /><label class=\"btn-secondary btn\" aria-pressed=\"true\" for=\"#{actual.items.last.input_options[:id]}\">Checkbox 2</label></div>"
|
|
15
15
|
|
|
16
16
|
assert_equal expected, actual.render
|
|
17
17
|
end
|
|
@@ -22,7 +22,7 @@ class ChoiceGroupTest < ActionView::TestCase
|
|
|
22
22
|
bc.choice 'Radio 2', state: :active
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
expected = "<div data-toggle=\"buttons\" class=\"btn-group button-choice btn-group-toggle\"><input type=\"radio\" autocomplete=\"off\" class=\"btn-check\" name=\"#{actual.items.first.input_options[:name]}\" id=\"#{actual.items.first.input_options[:id]}\" /><label class=\"btn-secondary btn\" for=\"#{actual.items.first.input_options[:id]}\">Radio 1</label><input type=\"radio\" autocomplete=\"off\" class=\"btn-check\" checked=\"checked\" name=\"#{actual.items.last.input_options[:name]}\" id=\"#{actual.items.last.input_options[:id]}\" /><label class=\"
|
|
25
|
+
expected = "<div data-toggle=\"buttons\" class=\"btn-group button-choice btn-group-toggle\"><input type=\"radio\" autocomplete=\"off\" class=\"btn-check\" name=\"#{actual.items.first.input_options[:name]}\" id=\"#{actual.items.first.input_options[:id]}\" /><label class=\"btn-secondary btn\" for=\"#{actual.items.first.input_options[:id]}\">Radio 1</label><input type=\"radio\" autocomplete=\"off\" class=\"btn-check\" checked=\"checked\" name=\"#{actual.items.last.input_options[:name]}\" id=\"#{actual.items.last.input_options[:id]}\" /><label class=\"btn-secondary btn\" aria-pressed=\"true\" for=\"#{actual.items.last.input_options[:id]}\">Radio 2</label></div>"
|
|
26
26
|
|
|
27
27
|
assert_equal expected, actual.render
|
|
28
28
|
end
|
|
@@ -32,7 +32,7 @@ class ChoiceGroupTest < ActionView::TestCase
|
|
|
32
32
|
bc.choice 'Radio 1', glyph: 'diamond', status: :primary
|
|
33
33
|
bc.choice 'Radio 2', state: :active
|
|
34
34
|
end
|
|
35
|
-
expected = "<div data-toggle=\"buttons\" class=\"btn-group btn-group-lg button-choice btn-group-toggle\"><input type=\"radio\" autocomplete=\"off\" class=\"btn-check\" name=\"#{actual.items.first.input_options[:name]}\" id=\"#{actual.items.first.input_options[:id]}\" /><label class=\"btn-outline-primary btn btn-lg\" for=\"#{actual.items.first.input_options[:id]}\"><i class=\"glyph fas fa-diamond\"></i> Radio 1</label><input type=\"radio\" autocomplete=\"off\" class=\"btn-check\" checked=\"checked\" name=\"#{actual.items.last.input_options[:name]}\" id=\"#{actual.items.last.input_options[:id]}\" /><label class=\"
|
|
35
|
+
expected = "<div data-toggle=\"buttons\" class=\"btn-group btn-group-lg button-choice btn-group-toggle\"><input type=\"radio\" autocomplete=\"off\" class=\"btn-check\" name=\"#{actual.items.first.input_options[:name]}\" id=\"#{actual.items.first.input_options[:id]}\" /><label class=\"btn-outline-primary btn btn-lg\" for=\"#{actual.items.first.input_options[:id]}\"><i class=\"glyph fas fa-diamond\"></i> Radio 1</label><input type=\"radio\" autocomplete=\"off\" class=\"btn-check\" checked=\"checked\" name=\"#{actual.items.last.input_options[:name]}\" id=\"#{actual.items.last.input_options[:id]}\" /><label class=\"btn-outline-secondary btn btn-lg\" aria-pressed=\"true\" for=\"#{actual.items.last.input_options[:id]}\">Radio 2</label></div>"
|
|
36
36
|
|
|
37
37
|
assert_equal expected, actual.render
|
|
38
38
|
end
|
|
@@ -9,4 +9,11 @@ class RadioFieldTest < ActionView::TestCase
|
|
|
9
9
|
|
|
10
10
|
assert_equal expected, actual
|
|
11
11
|
end
|
|
12
|
+
|
|
13
|
+
test 'checkbox_field with options and html_options' do
|
|
14
|
+
actual = UiBibz::Ui::Core::Forms::Choices::RadioField.new('John', action: 'click->controller#action', label_html: { class: 'test' }, wrapper_html: { title: "My title" }).render
|
|
15
|
+
expected = "<div title=\"My title\" class=\"form-check\"><input type=\"radio\" name=\"John\" id=\"John_\" data-action=\"click->controller#action\" class=\"form-check-input\" /><label class=\"form-check-label\" for=\"John_\">John</label></div>"
|
|
16
|
+
|
|
17
|
+
assert_equal expected, actual
|
|
18
|
+
end
|
|
12
19
|
end
|
|
@@ -87,7 +87,7 @@ class SurroundFieldTest < ActionView::TestCase
|
|
|
87
87
|
sf.button_refresh
|
|
88
88
|
end.render
|
|
89
89
|
|
|
90
|
-
expected = "<div class=\"input-group ui_surround_field\"><span class=\"input-group-text\"><i class=\"glyph fas fa-gem\"></i></span><span class=\"input-group-text\">test</span><button class=\"btn-secondary btn\">button</button><div class=\"input-group-btn\" role=\"group\"><button class=\"btn-secondary btn\">test</button></div><a class=\"btn-secondary btn\" role=\"button\" href=\"#\">link</a><div class=\"
|
|
90
|
+
expected = "<div class=\"input-group ui_surround_field\"><span class=\"input-group-text\"><i class=\"glyph fas fa-gem\"></i></span><span class=\"input-group-text\">test</span><button class=\"btn-secondary btn\">button</button><div class=\"input-group-btn\" role=\"group\"><button class=\"btn-secondary btn\">test</button></div><a class=\"btn-secondary btn\" role=\"button\" href=\"#\">link</a><div class=\"form-check\"><input type=\"checkbox\" name=\"check\" id=\"check\" value=\"1\" class=\"form-check-input input-group-text\" label=\"false\" /><label class=\"form-check-label\" for=\"check\">check</label></div><div class=\"form-check\"><input type=\"radio\" name=\"radio\" id=\"radio_\" class=\"form-check-input input-group-text\" label=\"false\" /><label class=\"form-check-label\" for=\"radio_\">radio</label></div><input type=\"text\" name=\"text\" id=\"text\" class=\"form-control\" /><input type=\"text\" name=\"date\" id=\"date\" data-date-locale=\"en\" data-provide=\"datepicker\" data-date-format=\"yyyy-mm-dd\" data-date-today-btn=\"linked\" data-date-toggle-active=\"true\" class=\"date_picker form-control\" /><select name=\"dropdown_select\" id=\"dropdown_select\" data-wrapper-classes=\"input-group-btn\" data-dropdown-classes=\"dropdown\" class=\"btn-secondary multi-select-field\"></select><select name=\"select\" id=\"select\" class=\"select-field form-control form-select\"></select><input type=\"text\" name=\"auto\" id=\"auto\" class=\"form-control auto-complete-field\" autocomplete=\"true\" list=\"auto-datalist\" /><datalist id=\"auto-datalist\"></datalist><span data-connect=\"{"events":"click","mode":"remote","target":{"selector":"","url":"","data":[]}}\" class=\"btn-secondary ui-bibz-connect btn input-refresh-button\"><i class=\"glyph fas fa-sync-alt\"></i></span></div>"
|
|
91
91
|
|
|
92
92
|
assert_equal expected, actual
|
|
93
93
|
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
require 'ui_bibz/ui/ux/tables/components/store'
|
|
5
|
+
require 'ui_bibz/ui/ux/tables/extensions/paginable'
|
|
6
|
+
require 'ui_bibz/ui/ux/tables/extensions/searchable'
|
|
7
|
+
require 'ui_bibz/ui/ux/tables/extensions/sortable'
|
|
8
|
+
require 'ui_bibz/ui/ux/tables/extensions/actionable'
|
|
9
|
+
|
|
10
|
+
class TableCardTest < ActionView::TestCase
|
|
11
|
+
setup do
|
|
12
|
+
create_list(:user, 25)
|
|
13
|
+
params = ActionController::Parameters.new({
|
|
14
|
+
controller: 'users',
|
|
15
|
+
action: 'index',
|
|
16
|
+
sort: 'users.name_fr',
|
|
17
|
+
direction: 'asc',
|
|
18
|
+
search: 'Name fr',
|
|
19
|
+
per_page: 2,
|
|
20
|
+
page: 1,
|
|
21
|
+
only_path: true
|
|
22
|
+
})
|
|
23
|
+
@users = User.table_search_pagination(params, session)
|
|
24
|
+
@store = UiBibz::Ui::Ux::Tables::Store.new @users
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
test 'table card visual options' do
|
|
28
|
+
table_card = UiBibz::Ui::Ux::Tables::TableCard.new(store: @users, table_options: { striped: true, status: :inverse, responsive: true, bordered: true, size: :sm, hoverable: true, breakpoint: :sm }).render
|
|
29
|
+
actual_table_classes = Nokogiri::HTML(table_card).xpath('//table')[0].attributes['class'].value
|
|
30
|
+
div_classes = Nokogiri::HTML(table_card).xpath('//div').css('.table-responsive-sm')[0].attributes['class'].value
|
|
31
|
+
table_classes = 'table-inverse table table-striped table-bordered table-hoverable table-sm'
|
|
32
|
+
actual_div_classes = 'table-responsive-sm'
|
|
33
|
+
|
|
34
|
+
assert_equal table_classes, actual_table_classes
|
|
35
|
+
assert_equal div_classes, actual_div_classes
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -195,11 +195,14 @@ class TableTest < ActionView::TestCase
|
|
|
195
195
|
end
|
|
196
196
|
|
|
197
197
|
test 'table visual options' do
|
|
198
|
-
table
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
198
|
+
table = UiBibz::Ui::Ux::Tables::Table.new(store: @users, striped: true, status: :inverse, responsive: true, bordered: true, size: :sm, hoverable: true, breakpoint: :sm).render
|
|
199
|
+
div_classes = Nokogiri::HTML(table).xpath('//div')[0].attributes['class'].value
|
|
200
|
+
actual_table_classes = Nokogiri::HTML(table).xpath('//table')[0].attributes['class'].value
|
|
201
|
+
table_classes = 'table-inverse table table-striped table-bordered table-hoverable table-sm'
|
|
202
|
+
actual_div_classes = 'table-responsive-sm'
|
|
203
|
+
|
|
204
|
+
assert_equal table_classes, actual_table_classes
|
|
205
|
+
assert_equal div_classes, actual_div_classes
|
|
203
206
|
end
|
|
204
207
|
|
|
205
208
|
test 'table thead visual options' do
|
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.
|
|
4
|
+
version: 3.0.0.beta14
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thooams [Thomas HUMMEL]
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-02-
|
|
11
|
+
date: 2021-02-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -574,6 +574,7 @@ files:
|
|
|
574
574
|
- test/ui/core/windows/modal_test.rb
|
|
575
575
|
- test/ui/utils/breakdown_class_name_generator_test.rb
|
|
576
576
|
- test/ui/ux/containers/panel_test.rb
|
|
577
|
+
- test/ui/ux/tables/table_card_test.rb
|
|
577
578
|
- test/ui/ux/tables/table_test.rb
|
|
578
579
|
- test/ui_bibz_test.rb
|
|
579
580
|
- ui_bibz.gemspec
|
|
@@ -786,5 +787,6 @@ test_files:
|
|
|
786
787
|
- test/ui/core/windows/modal_test.rb
|
|
787
788
|
- test/ui/utils/breakdown_class_name_generator_test.rb
|
|
788
789
|
- test/ui/ux/containers/panel_test.rb
|
|
790
|
+
- test/ui/ux/tables/table_card_test.rb
|
|
789
791
|
- test/ui/ux/tables/table_test.rb
|
|
790
792
|
- test/ui_bibz_test.rb
|