ui_bibz 3.0.2 → 3.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +65 -65
- data/config/initializers/will_paginate.rb +2 -2
- data/lib/ui_bibz/concerns/models/searchable.rb +2 -2
- data/lib/ui_bibz/infos.rb +3 -3
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_file_field_input.rb +4 -0
- data/lib/ui_bibz/ui/core/boxes/card.rb +6 -1
- data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +9 -1
- data/lib/ui_bibz/ui/core/forms/files/file_field.rb +4 -1
- data/lib/ui_bibz/ui/core/forms/numbers/slider_field.rb +1 -1
- data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +1 -0
- data/lib/ui_bibz/ui/ux/tables/table_pagination_per_page.rb +1 -1
- data/test/ui/core/boxes/card_test.rb +5 -3
- data/test/ui/core/forms/selects/dropdown_select_field_test.rb +9 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13a1dd66cbd7e134c7defdad8c359d9c64beb21eb6196436a518cb17a83a8df2
|
4
|
+
data.tar.gz: a89c779194577142ace4a56e53089ed0dceb8b96988207f9f6c043f0d0354b9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c39e166f3cda1b05035d734b652d44a50af2cbbb4b9a9bfbd78f1582a03b32bd2356eebe00d470e46b77bbf45a672226830b38cb1826d156997145e5b62453ac
|
7
|
+
data.tar.gz: 353ae7e27e66411c506bc984e8575263371117e3461f3de5cdf1f833790be324bec3ff75d6ff15ac98c7e60fcddc41dc68f5cf601e8dddfd0c809a0c8b93ff29
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ui_bibz (3.0.
|
4
|
+
ui_bibz (3.0.6)
|
5
5
|
will-paginate-i18n
|
6
6
|
will_paginate (~> 3.3.0)
|
7
7
|
will_paginate-bootstrap4
|
@@ -9,60 +9,60 @@ PATH
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
|
-
actioncable (6.1.4)
|
13
|
-
actionpack (= 6.1.4)
|
14
|
-
activesupport (= 6.1.4)
|
12
|
+
actioncable (6.1.4.1)
|
13
|
+
actionpack (= 6.1.4.1)
|
14
|
+
activesupport (= 6.1.4.1)
|
15
15
|
nio4r (~> 2.0)
|
16
16
|
websocket-driver (>= 0.6.1)
|
17
|
-
actionmailbox (6.1.4)
|
18
|
-
actionpack (= 6.1.4)
|
19
|
-
activejob (= 6.1.4)
|
20
|
-
activerecord (= 6.1.4)
|
21
|
-
activestorage (= 6.1.4)
|
22
|
-
activesupport (= 6.1.4)
|
17
|
+
actionmailbox (6.1.4.1)
|
18
|
+
actionpack (= 6.1.4.1)
|
19
|
+
activejob (= 6.1.4.1)
|
20
|
+
activerecord (= 6.1.4.1)
|
21
|
+
activestorage (= 6.1.4.1)
|
22
|
+
activesupport (= 6.1.4.1)
|
23
23
|
mail (>= 2.7.1)
|
24
|
-
actionmailer (6.1.4)
|
25
|
-
actionpack (= 6.1.4)
|
26
|
-
actionview (= 6.1.4)
|
27
|
-
activejob (= 6.1.4)
|
28
|
-
activesupport (= 6.1.4)
|
24
|
+
actionmailer (6.1.4.1)
|
25
|
+
actionpack (= 6.1.4.1)
|
26
|
+
actionview (= 6.1.4.1)
|
27
|
+
activejob (= 6.1.4.1)
|
28
|
+
activesupport (= 6.1.4.1)
|
29
29
|
mail (~> 2.5, >= 2.5.4)
|
30
30
|
rails-dom-testing (~> 2.0)
|
31
|
-
actionpack (6.1.4)
|
32
|
-
actionview (= 6.1.4)
|
33
|
-
activesupport (= 6.1.4)
|
31
|
+
actionpack (6.1.4.1)
|
32
|
+
actionview (= 6.1.4.1)
|
33
|
+
activesupport (= 6.1.4.1)
|
34
34
|
rack (~> 2.0, >= 2.0.9)
|
35
35
|
rack-test (>= 0.6.3)
|
36
36
|
rails-dom-testing (~> 2.0)
|
37
37
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
38
|
-
actiontext (6.1.4)
|
39
|
-
actionpack (= 6.1.4)
|
40
|
-
activerecord (= 6.1.4)
|
41
|
-
activestorage (= 6.1.4)
|
42
|
-
activesupport (= 6.1.4)
|
38
|
+
actiontext (6.1.4.1)
|
39
|
+
actionpack (= 6.1.4.1)
|
40
|
+
activerecord (= 6.1.4.1)
|
41
|
+
activestorage (= 6.1.4.1)
|
42
|
+
activesupport (= 6.1.4.1)
|
43
43
|
nokogiri (>= 1.8.5)
|
44
|
-
actionview (6.1.4)
|
45
|
-
activesupport (= 6.1.4)
|
44
|
+
actionview (6.1.4.1)
|
45
|
+
activesupport (= 6.1.4.1)
|
46
46
|
builder (~> 3.1)
|
47
47
|
erubi (~> 1.4)
|
48
48
|
rails-dom-testing (~> 2.0)
|
49
49
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
50
|
-
activejob (6.1.4)
|
51
|
-
activesupport (= 6.1.4)
|
50
|
+
activejob (6.1.4.1)
|
51
|
+
activesupport (= 6.1.4.1)
|
52
52
|
globalid (>= 0.3.6)
|
53
|
-
activemodel (6.1.4)
|
54
|
-
activesupport (= 6.1.4)
|
55
|
-
activerecord (6.1.4)
|
56
|
-
activemodel (= 6.1.4)
|
57
|
-
activesupport (= 6.1.4)
|
58
|
-
activestorage (6.1.4)
|
59
|
-
actionpack (= 6.1.4)
|
60
|
-
activejob (= 6.1.4)
|
61
|
-
activerecord (= 6.1.4)
|
62
|
-
activesupport (= 6.1.4)
|
53
|
+
activemodel (6.1.4.1)
|
54
|
+
activesupport (= 6.1.4.1)
|
55
|
+
activerecord (6.1.4.1)
|
56
|
+
activemodel (= 6.1.4.1)
|
57
|
+
activesupport (= 6.1.4.1)
|
58
|
+
activestorage (6.1.4.1)
|
59
|
+
actionpack (= 6.1.4.1)
|
60
|
+
activejob (= 6.1.4.1)
|
61
|
+
activerecord (= 6.1.4.1)
|
62
|
+
activesupport (= 6.1.4.1)
|
63
63
|
marcel (~> 1.0.0)
|
64
64
|
mini_mime (>= 1.1.0)
|
65
|
-
activesupport (6.1.4)
|
65
|
+
activesupport (6.1.4.1)
|
66
66
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
67
67
|
i18n (>= 1.6, < 2)
|
68
68
|
minitest (>= 5.1)
|
@@ -111,49 +111,49 @@ GEM
|
|
111
111
|
nokogiri (>= 1.5.9)
|
112
112
|
mail (2.7.1)
|
113
113
|
mini_mime (>= 0.1.1)
|
114
|
-
marcel (1.0.
|
114
|
+
marcel (1.0.2)
|
115
115
|
method_source (1.0.0)
|
116
|
-
mini_mime (1.1.
|
116
|
+
mini_mime (1.1.1)
|
117
117
|
mini_portile2 (2.6.1)
|
118
118
|
minitest (5.14.4)
|
119
119
|
nio4r (2.5.8)
|
120
|
-
nokogiri (1.12.
|
120
|
+
nokogiri (1.12.5)
|
121
121
|
mini_portile2 (~> 2.6.1)
|
122
122
|
racc (~> 1.4)
|
123
123
|
overcommit (0.58.0)
|
124
124
|
childprocess (>= 0.6.3, < 5)
|
125
125
|
iniparse (~> 1.4)
|
126
126
|
rexml (~> 3.2)
|
127
|
-
parallel (1.
|
127
|
+
parallel (1.21.0)
|
128
128
|
parser (3.0.2.0)
|
129
129
|
ast (~> 2.4.1)
|
130
130
|
racc (1.5.2)
|
131
131
|
rack (2.2.3)
|
132
132
|
rack-test (1.1.0)
|
133
133
|
rack (>= 1.0, < 3)
|
134
|
-
rails (6.1.4)
|
135
|
-
actioncable (= 6.1.4)
|
136
|
-
actionmailbox (= 6.1.4)
|
137
|
-
actionmailer (= 6.1.4)
|
138
|
-
actionpack (= 6.1.4)
|
139
|
-
actiontext (= 6.1.4)
|
140
|
-
actionview (= 6.1.4)
|
141
|
-
activejob (= 6.1.4)
|
142
|
-
activemodel (= 6.1.4)
|
143
|
-
activerecord (= 6.1.4)
|
144
|
-
activestorage (= 6.1.4)
|
145
|
-
activesupport (= 6.1.4)
|
134
|
+
rails (6.1.4.1)
|
135
|
+
actioncable (= 6.1.4.1)
|
136
|
+
actionmailbox (= 6.1.4.1)
|
137
|
+
actionmailer (= 6.1.4.1)
|
138
|
+
actionpack (= 6.1.4.1)
|
139
|
+
actiontext (= 6.1.4.1)
|
140
|
+
actionview (= 6.1.4.1)
|
141
|
+
activejob (= 6.1.4.1)
|
142
|
+
activemodel (= 6.1.4.1)
|
143
|
+
activerecord (= 6.1.4.1)
|
144
|
+
activestorage (= 6.1.4.1)
|
145
|
+
activesupport (= 6.1.4.1)
|
146
146
|
bundler (>= 1.15.0)
|
147
|
-
railties (= 6.1.4)
|
147
|
+
railties (= 6.1.4.1)
|
148
148
|
sprockets-rails (>= 2.0.0)
|
149
149
|
rails-dom-testing (2.0.3)
|
150
150
|
activesupport (>= 4.2.0)
|
151
151
|
nokogiri (>= 1.6)
|
152
|
-
rails-html-sanitizer (1.
|
152
|
+
rails-html-sanitizer (1.4.2)
|
153
153
|
loofah (~> 2.3)
|
154
|
-
railties (6.1.4)
|
155
|
-
actionpack (= 6.1.4)
|
156
|
-
activesupport (= 6.1.4)
|
154
|
+
railties (6.1.4.1)
|
155
|
+
actionpack (= 6.1.4.1)
|
156
|
+
activesupport (= 6.1.4.1)
|
157
157
|
method_source
|
158
158
|
rake (>= 0.13)
|
159
159
|
thor (~> 1.0)
|
@@ -161,23 +161,23 @@ GEM
|
|
161
161
|
rake (13.0.6)
|
162
162
|
regexp_parser (2.1.1)
|
163
163
|
rexml (3.2.5)
|
164
|
-
rubocop (1.
|
164
|
+
rubocop (1.22.1)
|
165
165
|
parallel (~> 1.10)
|
166
166
|
parser (>= 3.0.0.0)
|
167
167
|
rainbow (>= 2.2.2, < 4.0)
|
168
168
|
regexp_parser (>= 1.8, < 3.0)
|
169
169
|
rexml
|
170
|
-
rubocop-ast (>= 1.
|
170
|
+
rubocop-ast (>= 1.12.0, < 2.0)
|
171
171
|
ruby-progressbar (~> 1.7)
|
172
172
|
unicode-display_width (>= 1.4.0, < 3.0)
|
173
|
-
rubocop-ast (1.
|
173
|
+
rubocop-ast (1.12.0)
|
174
174
|
parser (>= 3.0.1.1)
|
175
|
-
rubocop-minitest (0.15.
|
175
|
+
rubocop-minitest (0.15.1)
|
176
176
|
rubocop (>= 0.90, < 2.0)
|
177
177
|
rubocop-performance (1.11.5)
|
178
178
|
rubocop (>= 1.7.0, < 2.0)
|
179
179
|
rubocop-ast (>= 0.4.0)
|
180
|
-
rubocop-rails (2.
|
180
|
+
rubocop-rails (2.12.3)
|
181
181
|
activesupport (>= 4.2.0)
|
182
182
|
rack (>= 1.1)
|
183
183
|
rubocop (>= 1.7.0, < 2.0)
|
@@ -207,7 +207,7 @@ GEM
|
|
207
207
|
tilt (2.0.10)
|
208
208
|
tzinfo (2.0.4)
|
209
209
|
concurrent-ruby (~> 1.0)
|
210
|
-
unicode-display_width (2.
|
210
|
+
unicode-display_width (2.1.0)
|
211
211
|
websocket-driver (0.7.5)
|
212
212
|
websocket-extensions (>= 0.1.0)
|
213
213
|
websocket-extensions (0.1.5)
|
@@ -72,12 +72,12 @@ module WillPaginate
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def previous_page
|
75
|
-
num = @collection.current_page > 1 && @collection.current_page - 1
|
75
|
+
num = @collection.current_page > 1 && (@collection.current_page - 1)
|
76
76
|
previous_or_next_page num, @options[:previous_label], 'previous'
|
77
77
|
end
|
78
78
|
|
79
79
|
def next_page
|
80
|
-
num = @collection.current_page < @collection.total_pages && @collection.current_page + 1
|
80
|
+
num = @collection.current_page < @collection.total_pages && (@collection.current_page + 1)
|
81
81
|
previous_or_next_page num, @options[:next_label], 'next'
|
82
82
|
end
|
83
83
|
end
|
@@ -33,7 +33,7 @@ module UiBibz::Concerns::Models::Searchable
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def self.store_id
|
36
|
-
@arguments[:store_id] || @
|
36
|
+
@arguments[:store_id] || @params[:controller]
|
37
37
|
end
|
38
38
|
|
39
39
|
def self.create_model
|
@@ -139,7 +139,7 @@ module UiBibz::Concerns::Models::Searchable
|
|
139
139
|
end
|
140
140
|
end
|
141
141
|
else
|
142
|
-
sql_subquery << "lower(CAST(#{
|
142
|
+
sql_subquery << "lower(CAST(#{table_name}.#{attribute} AS TEXT)) LIKE :#{attribute}_#{i}"
|
143
143
|
sql_attributes = sql_attributes.merge({ "#{attribute}_#{i}".to_sym => "%#{pattern}%" })
|
144
144
|
end
|
145
145
|
end
|
data/lib/ui_bibz/infos.rb
CHANGED
@@ -4,14 +4,14 @@ module UiBibz
|
|
4
4
|
NAME = 'Ui Bibz'
|
5
5
|
SLUG = 'ui_bibz'
|
6
6
|
BOOTSTRAP_VERSION = '5.0.2'
|
7
|
-
DESCRIPTION = "A Rails Interface Framework using Bootstrap #{BOOTSTRAP_VERSION}."
|
8
|
-
SUMMARY = "Ui Bibz is an Ui Framework that allows you to build an interface very quickly and simply using Bootstrap #{BOOTSTRAP_VERSION}."
|
7
|
+
DESCRIPTION = "A Rails Interface Framework using Bootstrap #{BOOTSTRAP_VERSION}.".freeze
|
8
|
+
SUMMARY = "Ui Bibz is an Ui Framework that allows you to build an interface very quickly and simply using Bootstrap #{BOOTSTRAP_VERSION}.".freeze
|
9
9
|
LICENSE = 'MIT'
|
10
10
|
FONTAWESOME_VERSION = '5.15.3'
|
11
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
14
|
AUTHOR = 'Thooams [Thomas HUMMEL]'
|
15
|
-
VERSION = '3.0.
|
15
|
+
VERSION = '3.0.6'
|
16
16
|
AUTHORS = ['Thooams'].freeze
|
17
17
|
end
|
@@ -26,6 +26,7 @@ module UiBibz::Ui::Core::Boxes
|
|
26
26
|
# * text - Hash (+:size+, +:position+)
|
27
27
|
# (+:left+, +:right+, +:center+)
|
28
28
|
# * block - Boolean
|
29
|
+
# * tabbed - Boolean to use tab card
|
29
30
|
# * type - Symbol
|
30
31
|
# (+:inverse+)
|
31
32
|
#
|
@@ -108,7 +109,7 @@ module UiBibz::Ui::Core::Boxes
|
|
108
109
|
end
|
109
110
|
|
110
111
|
def component_html_classes
|
111
|
-
['card', text, type, tab_pane, outline]
|
112
|
+
['card', text, type, tab_pane, outline, tabbed]
|
112
113
|
end
|
113
114
|
|
114
115
|
def status
|
@@ -135,6 +136,10 @@ module UiBibz::Ui::Core::Boxes
|
|
135
136
|
'tab-pane' if @options[:tab]
|
136
137
|
end
|
137
138
|
|
139
|
+
def tabbed
|
140
|
+
'tab-content' if @options[:tabbed]
|
141
|
+
end
|
142
|
+
|
138
143
|
def outline
|
139
144
|
'bg-transparent' if @options[:outline]
|
140
145
|
end
|
@@ -81,7 +81,11 @@ module UiBibz::Ui::Core::Boxes::Components
|
|
81
81
|
private
|
82
82
|
|
83
83
|
def component_html_classes
|
84
|
-
['card-body', outline]
|
84
|
+
['card-body', outline, tab_pane]
|
85
|
+
end
|
86
|
+
|
87
|
+
def component_html_options
|
88
|
+
@options[:tab_pane].nil? ? {} : { id: @options[:tab_pane] }
|
85
89
|
end
|
86
90
|
|
87
91
|
def outline
|
@@ -91,5 +95,9 @@ module UiBibz::Ui::Core::Boxes::Components
|
|
91
95
|
def show
|
92
96
|
'show' if @options[:show]
|
93
97
|
end
|
98
|
+
|
99
|
+
def tab_pane
|
100
|
+
'tab-pane' if options[:tab_pane]
|
101
|
+
end
|
94
102
|
end
|
95
103
|
end
|
@@ -59,10 +59,13 @@ module UiBibz::Ui::Core::Forms::Files
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def format_value(value)
|
62
|
-
|
62
|
+
case value
|
63
|
+
when ActiveStorage::Attached::One
|
63
64
|
return '' unless value.attached?
|
64
65
|
|
65
66
|
return value.attachment.blob.filename
|
67
|
+
when ActiveStorage::Attached::Many
|
68
|
+
return ''
|
66
69
|
end
|
67
70
|
|
68
71
|
value.to_s
|
@@ -78,7 +78,7 @@ module UiBibz::Ui::Core::Forms::Numbers
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def not_on_hundred_percent?
|
81
|
-
options[:max].present? && options[:max] != 100 || options[:min].present? && options[:min] != 0
|
81
|
+
(options[:max].present? && options[:max] != 100) || (options[:min].present? && options[:min] != 0)
|
82
82
|
end
|
83
83
|
|
84
84
|
def absolute_total
|
@@ -136,16 +136,18 @@ class CardTest < ActionView::TestCase
|
|
136
136
|
assert_equal expected, actual
|
137
137
|
end
|
138
138
|
|
139
|
-
test 'card
|
140
|
-
actual = ui_card do |c|
|
139
|
+
test 'card tab' do
|
140
|
+
actual = ui_card tabbed: true do |c|
|
141
141
|
c.header do |h|
|
142
142
|
h.tab_group do |cg|
|
143
143
|
cg.tab 'link1', url: '#link1'
|
144
144
|
cg.tab 'link2', url: '#link2'
|
145
145
|
end
|
146
146
|
end
|
147
|
+
c.body tab_pan: "link1", state: :active
|
148
|
+
c.body tab_pan: "link2"
|
147
149
|
end
|
148
|
-
expected = "<div class=\"card\"><div class=\"card-header\"><ul class=\"nav nav-tabs card-header-tabs\" role=\"tablist\"><li class=\"nav-item\"><a href=\"#link1\" class=\"nav-link\" data-bs-toggle=\"tab\" role=\"tab\">link1</a></li><li class=\"nav-item\"><a href=\"#link2\" class=\"nav-link\" data-bs-toggle=\"tab\" role=\"tab\">link2</a></li></ul></div></div>"
|
150
|
+
expected = "<div class=\"card tab-content\"><div class=\"card-header\"><ul class=\"nav nav-tabs card-header-tabs\" role=\"tablist\"><li class=\"nav-item\"><a href=\"#link1\" class=\"nav-link\" data-bs-toggle=\"tab\" role=\"tab\">link1</a></li><li class=\"nav-item\"><a href=\"#link2\" class=\"nav-link\" data-bs-toggle=\"tab\" role=\"tab\">link2</a></li></ul></div><div class=\"active card-body\"></div><div class=\"card-body\"></div></div>"
|
149
151
|
|
150
152
|
assert_equal expected, actual
|
151
153
|
end
|
@@ -12,6 +12,15 @@ class DropdownSelectFieldTest < ActionView::TestCase
|
|
12
12
|
assert_equal expected, actual
|
13
13
|
end
|
14
14
|
|
15
|
+
test 'Dropdown Select Field with fuzzy search' do
|
16
|
+
options = options_for_select(Array.new(2) { |i| "option #{i}" })
|
17
|
+
actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('example', option_tags: options, searchable: :fuzzy).render
|
18
|
+
expected = "<select name=\"example\" id=\"example\" data-enable-filtering=\"true\" data-fuzzy-search=\"true\" data-dropdown-classes=\"dropdown\" class=\"btn-secondary multi-select-field\"><option value=\"option 0\">option 0</option>
|
19
|
+
<option value=\"option 1\">option 1</option></select>"
|
20
|
+
|
21
|
+
assert_equal expected, actual
|
22
|
+
end
|
23
|
+
|
15
24
|
test 'Dropdown Select Field data html options' do
|
16
25
|
grouped_options = { 'North America' => [['United statuss', 'US'], 'Canada'], 'Europe' => %w[Denmark Germany France] }
|
17
26
|
actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('example', { multiple: true, option_tags: grouped_options_for_select(grouped_options), clickable_opt_group: true, collapsible_opt_group: true, searchable: true, non_selected_text: 'test', select_all_options: true, number_displayed: 2, status: :danger, n_selected_text: "items selected" }).render
|
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.
|
4
|
+
version: 3.0.6
|
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-
|
11
|
+
date: 2021-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|