ui_bibz 4.0.0.beta7 → 4.0.0.beta8

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/.overcommit.yml +0 -3
  3. data/.rubocop.yml +1 -4
  4. data/.ruby-version +1 -1
  5. data/Gemfile.lock +38 -41
  6. data/app/assets/config/ui_bibz.js +1 -0
  7. data/lib/ui_bibz/concerns/models/searchable.rb +3 -3
  8. data/lib/ui_bibz/helpers/utils_helper.rb +2 -2
  9. data/lib/ui_bibz/infos.rb +2 -2
  10. data/lib/ui_bibz/inputs/ui_bibz_form/ui_bibz_form_builder.rb +8 -8
  11. data/lib/ui_bibz/ui/core/forms/buttons/button.rb +1 -1
  12. data/lib/ui_bibz/ui/core/forms/dropdowns/split_dropdown.rb +1 -1
  13. data/lib/ui_bibz/ui/core/lists/components/list.rb +1 -1
  14. data/lib/ui_bibz/ui/core/navigations/tab_group.rb +1 -1
  15. data/lib/ui_bibz/ui/core/notifications/toast.rb +3 -3
  16. data/lib/ui_bibz/ui/ux/tables/table.rb +1 -1
  17. data/lib/ui_bibz/ui/ux/tables/table_pagination.rb +0 -2
  18. data/lib/ui_bibz/ui/ux/tables/table_pagination_per_page.rb +15 -7
  19. data/lib/ui_bibz/ui/ux/tables/table_search_field.rb +1 -1
  20. data/lib/ui_bibz.rb +0 -1
  21. data/test/ui/ux/tables/table_test.rb +1 -1
  22. data/ui_bibz.gemspec +2 -4
  23. data/vendor/assets/fonts/fontawesome/fa-brands-400.ttf +0 -0
  24. data/vendor/assets/fonts/fontawesome/fa-brands-400.woff2 +0 -0
  25. data/vendor/assets/fonts/fontawesome/fa-regular-400.ttf +0 -0
  26. data/vendor/assets/fonts/fontawesome/fa-regular-400.woff2 +0 -0
  27. data/vendor/assets/fonts/fontawesome/fa-solid-900.ttf +0 -0
  28. data/vendor/assets/fonts/fontawesome/fa-solid-900.woff2 +0 -0
  29. data/vendor/assets/fonts/fontawesome/fa-v4compatibility.ttf +0 -0
  30. data/vendor/assets/fonts/fontawesome/fa-v4compatibility.woff2 +0 -0
  31. data/vendor/assets/javascripts/fontawesome/all.js +308 -259
  32. data/vendor/assets/javascripts/fontawesome/all.min.js +2 -2
  33. data/vendor/assets/javascripts/fontawesome/brands.js +93 -68
  34. data/vendor/assets/javascripts/fontawesome/brands.min.js +2 -2
  35. data/vendor/assets/javascripts/fontawesome/conflict-detection.js +44 -36
  36. data/vendor/assets/javascripts/fontawesome/conflict-detection.min.js +2 -2
  37. data/vendor/assets/javascripts/fontawesome/fontawesome.js +49 -41
  38. data/vendor/assets/javascripts/fontawesome/fontawesome.min.js +2 -2
  39. data/vendor/assets/javascripts/fontawesome/regular.js +59 -51
  40. data/vendor/assets/javascripts/fontawesome/regular.min.js +2 -2
  41. data/vendor/assets/javascripts/fontawesome/solid.js +110 -102
  42. data/vendor/assets/javascripts/fontawesome/solid.min.js +2 -2
  43. data/vendor/assets/javascripts/fontawesome/v4-shims.js +44 -36
  44. data/vendor/assets/javascripts/fontawesome/v4-shims.min.js +2 -2
  45. data/vendor/assets/stylesheets/fontawesome/_mixins.scss +1 -1
  46. data/vendor/assets/stylesheets/fontawesome/_variables.scss +34 -2
  47. data/vendor/assets/stylesheets/fontawesome/brands.scss +1 -1
  48. data/vendor/assets/stylesheets/fontawesome/fontawesome.scss +1 -1
  49. data/vendor/assets/stylesheets/fontawesome/regular.scss +1 -1
  50. data/vendor/assets/stylesheets/fontawesome/solid.scss +3 -3
  51. data/vendor/assets/stylesheets/fontawesome/v4-shims.scss +1 -1
  52. metadata +6 -34
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c214a04b928da73dfcb4feb28bef2a8fdff46ef460c5079090c5d843f176bd9a
4
- data.tar.gz: 45c7dbabf9d32153b04b8044f3e3a71816bdf134da499027ac0e301a613dfd53
3
+ metadata.gz: af01a0145989f1ebec03cb021d895a0308ca15870a575e46a32ebd6a7ce9810e
4
+ data.tar.gz: 1ab09e1b4fc00aa28e1778f2498371e5eac60cf398a12a6c538a940797f3f698
5
5
  SHA512:
6
- metadata.gz: 6719cfe7238e74257ee0382bba4a5d93ba4018b85fac812ea01bbd3345853af86c279d65c462a0f604215de181e56a71e0f01787f6217d0a5a84e92a8b146d50
7
- data.tar.gz: ea5a435647afeeee53c2b1f6f58f2e5f98a441d999606d12684fbb41f6f1c3f9a511a3f0a8beba2fa247ecc1e931cd808710d5f064179f7b90875ad2a0fff9a4
6
+ metadata.gz: 0ab623a9538ae89b59e79dfc2e1173b5c8d171364415cbd1adaedceedb247e6c48b82654b78433155a18946c413c8a4d3b66f1d25a29d4f8e18a29f8b6c2b6c4
7
+ data.tar.gz: bf448fb0bdb071c7dc915582265bec94dbd28b71647016c119870f7af23e9b00d1a50166a0789c6f95802bb61be91de5357f51f5d81c57217820249d8b98da3f
data/.overcommit.yml CHANGED
@@ -6,6 +6,3 @@ PreCommit:
6
6
 
7
7
  TrailingWhitespace:
8
8
  enabled: true
9
-
10
- Fasterer:
11
- enabled: true
data/.rubocop.yml CHANGED
@@ -178,7 +178,4 @@ Style/OpenStructUse:
178
178
  Enabled: false
179
179
 
180
180
  Naming/BlockForwarding:
181
- Enabled: true
182
- Exclude:
183
- - lib/ui_bibz/ui/core/component.rb
184
- - lib/ui_bibz/ui/core/navigations/components/nav_link.rb
181
+ Enabled: false
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-3.2.2
1
+ ruby-3.3.0
data/Gemfile.lock CHANGED
@@ -1,13 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ui_bibz (4.0.0.beta7)
4
+ ui_bibz (4.0.0.beta8)
5
5
  bootstrap (~> 5.3.0)
6
6
  dartsass-sprockets (~> 3.0.0)
7
7
  rails (>= 7.1.0)
8
- will-paginate-i18n
9
- will_paginate (~> 3.3.0)
10
- will_paginate-bootstrap4
8
+ will_paginate
11
9
 
12
10
  GEM
13
11
  remote: https://rubygems.org/
@@ -87,11 +85,11 @@ GEM
87
85
  mutex_m
88
86
  tzinfo (~> 2.0)
89
87
  ast (2.4.2)
90
- autoprefixer-rails (10.4.15.0)
88
+ autoprefixer-rails (10.4.16.0)
91
89
  execjs (~> 2)
92
90
  awesome_print (1.9.2)
93
91
  base64 (0.2.0)
94
- bigdecimal (3.1.4)
92
+ bigdecimal (3.1.5)
95
93
  bootstrap (5.3.2)
96
94
  autoprefixer-rails (>= 9.1.0)
97
95
  popper_js (>= 2.11.8, < 3)
@@ -122,9 +120,8 @@ GEM
122
120
  railties (>= 3.0.0)
123
121
  globalid (1.2.1)
124
122
  activesupport (>= 6.1)
125
- google-protobuf (3.25.1-x86_64-darwin)
126
- google-protobuf (3.25.1-x86_64-linux)
127
- haml (6.2.3)
123
+ google-protobuf (3.25.1)
124
+ haml (6.3.0)
128
125
  temple (>= 0.8.2)
129
126
  thor
130
127
  tilt
@@ -135,16 +132,16 @@ GEM
135
132
  railties (>= 5.1)
136
133
  i18n (1.14.1)
137
134
  concurrent-ruby (~> 1.0)
138
- importmap-rails (1.2.3)
135
+ importmap-rails (2.0.1)
139
136
  actionpack (>= 6.0.0)
140
137
  activesupport (>= 6.0.0)
141
138
  railties (>= 6.0.0)
142
139
  iniparse (1.5.0)
143
- io-console (0.6.0)
144
- irb (1.9.0)
140
+ io-console (0.7.1)
141
+ irb (1.11.0)
145
142
  rdoc
146
143
  reline (>= 0.3.8)
147
- json (2.6.3)
144
+ json (2.7.1)
148
145
  language_server-protocol (3.17.0.3)
149
146
  loofah (2.22.0)
150
147
  crass (~> 1.0.2)
@@ -158,32 +155,32 @@ GEM
158
155
  mini_mime (1.1.5)
159
156
  minitest (5.20.0)
160
157
  mutex_m (0.2.0)
161
- net-imap (0.4.5)
158
+ net-imap (0.4.9.1)
162
159
  date
163
160
  net-protocol
164
161
  net-pop (0.1.2)
165
162
  net-protocol
166
163
  net-protocol (0.2.2)
167
164
  timeout
168
- net-smtp (0.4.0)
165
+ net-smtp (0.4.0.1)
169
166
  net-protocol
170
- nio4r (2.6.0)
171
- nokogiri (1.15.4-x86_64-darwin)
167
+ nio4r (2.7.0)
168
+ nokogiri (1.16.0-x86_64-darwin)
172
169
  racc (~> 1.4)
173
- nokogiri (1.15.4-x86_64-linux)
170
+ nokogiri (1.16.0-x86_64-linux)
174
171
  racc (~> 1.4)
175
- overcommit (0.60.0)
172
+ overcommit (0.61.0)
176
173
  childprocess (>= 0.6.3, < 5)
177
174
  iniparse (~> 1.4)
178
175
  rexml (~> 3.2)
179
- parallel (1.23.0)
180
- parser (3.2.2.4)
176
+ parallel (1.24.0)
177
+ parser (3.3.0.2)
181
178
  ast (~> 2.4.1)
182
179
  racc
183
180
  popper_js (2.11.8)
184
- psych (5.1.1.1)
181
+ psych (5.1.2)
185
182
  stringio
186
- puma (6.4.0)
183
+ puma (6.4.2)
187
184
  nio4r (~> 2.0)
188
185
  racc (1.7.3)
189
186
  rack (3.0.8)
@@ -225,13 +222,13 @@ GEM
225
222
  zeitwerk (~> 2.6)
226
223
  rainbow (3.1.1)
227
224
  rake (13.1.0)
228
- rdoc (6.6.0)
225
+ rdoc (6.6.2)
229
226
  psych (>= 4.0.0)
230
- regexp_parser (2.8.2)
231
- reline (0.4.0)
227
+ regexp_parser (2.8.3)
228
+ reline (0.4.2)
232
229
  io-console (~> 0.5)
233
230
  rexml (3.2.6)
234
- rubocop (1.57.2)
231
+ rubocop (1.59.0)
235
232
  json (~> 2.3)
236
233
  language_server-protocol (>= 3.17.0)
237
234
  parallel (~> 1.10)
@@ -239,20 +236,22 @@ GEM
239
236
  rainbow (>= 2.2.2, < 4.0)
240
237
  regexp_parser (>= 1.8, < 3.0)
241
238
  rexml (>= 3.2.5, < 4.0)
242
- rubocop-ast (>= 1.28.1, < 2.0)
239
+ rubocop-ast (>= 1.30.0, < 2.0)
243
240
  ruby-progressbar (~> 1.7)
244
241
  unicode-display_width (>= 2.4.0, < 3.0)
245
242
  rubocop-ast (1.30.0)
246
243
  parser (>= 3.2.1.0)
247
- rubocop-minitest (0.33.0)
244
+ rubocop-minitest (0.34.3)
248
245
  rubocop (>= 1.39, < 2.0)
249
- rubocop-performance (1.19.1)
250
- rubocop (>= 1.7.0, < 2.0)
251
- rubocop-ast (>= 0.4.0)
252
- rubocop-rails (2.22.1)
246
+ rubocop-ast (>= 1.30.0, < 2.0)
247
+ rubocop-performance (1.20.1)
248
+ rubocop (>= 1.48.1, < 2.0)
249
+ rubocop-ast (>= 1.30.0, < 2.0)
250
+ rubocop-rails (2.23.1)
253
251
  activesupport (>= 4.2.0)
254
252
  rack (>= 1.1)
255
253
  rubocop (>= 1.33.0, < 2.0)
254
+ rubocop-ast (>= 1.30.0, < 2.0)
256
255
  ruby-progressbar (1.13.0)
257
256
  ruby2_keywords (0.0.5)
258
257
  sass-embedded (1.66.1-x86_64-darwin)
@@ -275,9 +274,9 @@ GEM
275
274
  actionpack (>= 5.2)
276
275
  activesupport (>= 5.2)
277
276
  sprockets (>= 3.0.0)
278
- sqlite3 (1.6.8-x86_64-darwin)
279
- sqlite3 (1.6.8-x86_64-linux)
280
- stringio (3.0.9)
277
+ sqlite3 (1.7.0-x86_64-darwin)
278
+ sqlite3 (1.7.0-x86_64-linux)
279
+ stringio (3.1.0)
281
280
  temple (0.10.3)
282
281
  thor (1.3.0)
283
282
  tilt (2.3.0)
@@ -289,15 +288,13 @@ GEM
289
288
  websocket-driver (0.7.6)
290
289
  websocket-extensions (>= 0.1.0)
291
290
  websocket-extensions (0.1.5)
292
- will-paginate-i18n (0.1.15)
293
- will_paginate (3.3.1)
294
- will_paginate-bootstrap4 (0.2.2)
295
- will_paginate (~> 3.0, >= 3.0.0)
291
+ will_paginate (4.0.0)
296
292
  yard (0.9.34)
297
293
  zeitwerk (2.6.12)
298
294
 
299
295
  PLATFORMS
300
296
  x86_64-darwin-22
297
+ x86_64-darwin-23
301
298
  x86_64-linux
302
299
 
303
300
  DEPENDENCIES
@@ -321,4 +318,4 @@ DEPENDENCIES
321
318
  yard
322
319
 
323
320
  BUNDLED WITH
324
- 2.4.10
321
+ 2.5.3
@@ -12,3 +12,4 @@
12
12
  //= link forms/formula.js
13
13
  //= link debounce.js
14
14
  //= link controllers/combobox_controller.js
15
+ //= link bootstrap-switch.min.js
@@ -133,20 +133,20 @@ module UiBibz::Concerns::Models::Searchable
133
133
  if attribute == :as
134
134
  attribute.each_value do |value|
135
135
  sql_subquery << "lower(CAST(#{value} AS TEXT)) LIKE :#{value}_#{i}"
136
- sql_attributes = sql_attributes.merge({ "#{value}_#{i}".to_sym => "%#{pattern}%" })
136
+ sql_attributes = sql_attributes.merge({ "#{value}_#{i}": "%#{pattern}%" })
137
137
  end
138
138
  else
139
139
  key_name = attribute.keys.first.to_s.pluralize
140
140
  attribute.each_value do |value|
141
141
  Array(value).each do |val|
142
142
  sql_subquery << "lower(CAST(#{key_name}.#{val} AS TEXT)) LIKE :#{key_name}_#{val}_#{i}"
143
- sql_attributes = sql_attributes.merge({ "#{key_name}_#{val}_#{i}".to_sym => "%#{pattern}%" })
143
+ sql_attributes = sql_attributes.merge({ "#{key_name}_#{val}_#{i}": "%#{pattern}%" })
144
144
  end
145
145
  end
146
146
  end
147
147
  else
148
148
  sql_subquery << "lower(CAST(#{table_name}.#{attribute} AS TEXT)) LIKE :#{attribute}_#{i}"
149
- sql_attributes = sql_attributes.merge({ "#{attribute}_#{i}".to_sym => "%#{pattern}%" })
149
+ sql_attributes = sql_attributes.merge({ "#{attribute}_#{i}": "%#{pattern}%" })
150
150
  end
151
151
  end
152
152
  sql_query << "(#{sql_subquery.join(' OR ')})"
@@ -7,9 +7,9 @@ module UiBibz::Helpers::UtilsHelper
7
7
  UiBibz::Utils::Internationalization.new(translation, options).translate
8
8
  end
9
9
 
10
- def ui_form_for(object, *args, &)
10
+ def ui_form_for(object, *args, &block)
11
11
  options = args.extract_options!
12
- simple_form_for(object, *(args << new_options(options)), &)
12
+ simple_form_for(object, *(args << new_options(options)), &block)
13
13
  end
14
14
 
15
15
  private
data/lib/ui_bibz/infos.rb CHANGED
@@ -7,11 +7,11 @@ module UiBibz
7
7
  DESCRIPTION = "A Rails Interface Framework using Bootstrap #{BOOTSTRAP_VERSION}.".freeze
8
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
- FONTAWESOME_VERSION = '6.4.0'
10
+ FONTAWESOME_VERSION = '6.5.1'
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 = '4.0.0.beta7'
15
+ VERSION = '4.0.0.beta8'
16
16
  AUTHORS = ['Thooams'].freeze
17
17
  end
@@ -9,13 +9,13 @@ module UiBibzForm
9
9
 
10
10
  attr_accessor :output_buffer
11
11
 
12
- def ui_surround_field(content = nil, opts = nil, html_options = nil, &)
12
+ def ui_surround_field(content = nil, opts = nil, html_options = nil, &block)
13
13
  content = (options || {}).merge(content || {})
14
14
  content = content.merge(template: @template, form: self)
15
15
 
16
16
  input_classes = UiBibz::Builders::HtmlClassesBuilder.join_classes('form-group', 'surround_field', options[:input_html].try(:[], :class))
17
17
  wrapper_html = (options[:input_html] || {}).merge({ class: input_classes })
18
- surround_field = UiBibz::Ui::Core::Forms::Surrounds::SurroundField.new(content, opts, html_options).tap(&)
18
+ surround_field = UiBibz::Ui::Core::Forms::Surrounds::SurroundField.new(content, opts, html_options).tap(&block)
19
19
  errors_text = surround_field.errors.flatten.to_sentence
20
20
  required = surround_field.required_fields.any?(true)
21
21
  wrapper_classes = UiBibz::Builders::HtmlClassesBuilder.join_classes(('has-error' if errors_text.present?), wrapper_html.try(:[], :class))
@@ -31,17 +31,17 @@ module UiBibzForm
31
31
  end
32
32
  end
33
33
 
34
- def ui_button_group(content = nil, opts = nil, html_options = nil, &)
35
- ui_component_group_by(UiBibz::Ui::Core::Forms::Buttons::ButtonGroup, content, opts, html_options, &)
34
+ def ui_button_group(content = nil, opts = nil, html_options = nil, &block)
35
+ ui_component_group_by(UiBibz::Ui::Core::Forms::Buttons::ButtonGroup, content, opts, html_options, &block)
36
36
  end
37
37
 
38
- def ui_choice_group(content = nil, opts = nil, html_options = nil, &)
39
- ui_component_group_by(UiBibz::Ui::Core::Forms::Choices::ChoiceGroup, content, opts, html_options, &)
38
+ def ui_choice_group(content = nil, opts = nil, html_options = nil, &block)
39
+ ui_component_group_by(UiBibz::Ui::Core::Forms::Choices::ChoiceGroup, content, opts, html_options, &block)
40
40
  end
41
41
 
42
42
  private
43
43
 
44
- def ui_component_group_by(component_class, content = nil, opts = nil, html_options = nil, &)
44
+ def ui_component_group_by(component_class, content = nil, opts = nil, html_options = nil, &block)
45
45
  content = (options || {}).merge(content || {})
46
46
  content = content.merge(template: @template, form: self)
47
47
 
@@ -50,7 +50,7 @@ module UiBibzForm
50
50
 
51
51
  content_tag :div, wrapper_html do
52
52
  concat content_tag(:label, content[:label]) unless content[:label].nil?
53
- concat component_class.new(content, opts, html_options).tap(&).render
53
+ concat component_class.new(content, opts, html_options).tap(&block).render
54
54
  end
55
55
  end
56
56
  end
@@ -118,7 +118,7 @@ module UiBibz::Ui::Core::Forms::Buttons
118
118
  UiBibz::Ui::Core::Notifications::Badge.new(options[:badge].delete(:content), options[:badge]).render
119
119
 
120
120
  else
121
- UiBibz::Ui::Core::Notifications::Badge.new(options[:badge], status: (options[:status] || :secondary)).render
121
+ UiBibz::Ui::Core::Notifications::Badge.new(options[:badge], status: options[:status] || :secondary).render
122
122
  end
123
123
  end
124
124
 
@@ -94,7 +94,7 @@ module UiBibz::Ui::Core::Forms::Dropdowns
94
94
  end
95
95
 
96
96
  def dropdown_html_options
97
- opts = (options[:html_button] || {})
97
+ opts = options[:html_button] || {}
98
98
  opts = opts.merge(href: options[:url]) if options[:tag] == :a
99
99
  opts.merge(class: join_classes('btn', button_status, state, size, options[:html_button].try(:[], :class)))
100
100
  end
@@ -135,7 +135,7 @@ module UiBibz::Ui::Core::Lists::Components
135
135
  UiBibz::Ui::Core::Notifications::Badge.new(options[:badge].delete(:content), options[:badge]).render
136
136
 
137
137
  else
138
- UiBibz::Ui::Core::Notifications::Badge.new(options[:badge], type: :pill, status: (options[:status] || :secondary)).render
138
+ UiBibz::Ui::Core::Notifications::Badge.new(options[:badge], type: :pill, status: options[:status] || :secondary).render
139
139
  end
140
140
  end
141
141
  end
@@ -88,7 +88,7 @@ module UiBibz::Ui::Core::Navigations
88
88
  end
89
89
 
90
90
  def type
91
- 'nav-tabs'
91
+ @options[:nav_type] || 'nav-tabs'
92
92
  end
93
93
  end
94
94
  end
@@ -75,14 +75,14 @@ module UiBibz::Ui::Core::Notifications
75
75
  end
76
76
 
77
77
  # Add Body which is a component
78
- def body(content = nil, options = nil, html_options = nil, &)
78
+ def body(content = nil, options = nil, html_options = nil, &block)
79
79
  @body = if @header.nil?
80
80
  content_tag :div, class: 'd-flex' do
81
- concat UiBibz::Ui::Core::Notifications::Components::ToastBody.new(content, options, html_options, &).render
81
+ concat UiBibz::Ui::Core::Notifications::Components::ToastBody.new(content, options, html_options, &block).render
82
82
  concat close_html if (options || {})[:closable]
83
83
  end
84
84
  else
85
- UiBibz::Ui::Core::Notifications::Components::ToastBody.new(content, options, html_options, &).render
85
+ UiBibz::Ui::Core::Notifications::Components::ToastBody.new(content, options, html_options, &block).render
86
86
  end
87
87
  end
88
88
 
@@ -151,7 +151,7 @@ module UiBibz::Ui::Ux::Tables
151
151
  def table_html
152
152
  content_tag(:table, html_options) do
153
153
  ths = cols.collect do |col|
154
- content_tag(:th, sort.header(col), class: col.class) unless col.hidden?
154
+ content_tag(:th, sort.header(col, col.name), class: col.class) unless col.hidden?
155
155
  end
156
156
 
157
157
  ths = action.header ths
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # require 'will_paginate'
4
- require 'will_paginate-bootstrap4'
5
3
  require 'ui_bibz/ui/ux/tables/components/store'
6
4
  module UiBibz::Ui::Ux::Tables
7
5
  # Create a pagination for table
@@ -55,19 +55,27 @@ module UiBibz::Ui::Ux::Tables
55
55
 
56
56
  def per_page_html
57
57
  content_tag :div, class: 'table-pagination-per-page' do
58
- concat results_count_html
59
- concat UiBibz::Utils::Internationalization.new('ui_bibz.table.pagination.per_page', default: 'Per page: ').translate
58
+ concat(
59
+ content_tag(:span, class: 'table-pagination-per-page-label') do
60
+ concat results_count_html
61
+ concat UiBibz::Utils::Internationalization.new('ui_bibz.table.pagination.per_page', default: 'Per page: ').translate
62
+ end
63
+ )
60
64
  concat select_tag('per_page', options_for_select([5, 10, 20, 30, 50, 100, 200, 500], store.per_page), class: 'form-select')
61
65
  end
62
66
  end
63
67
 
64
68
  def per_page_html_in_wrap
65
69
  content_tag :div, class: 'table-pagination-per-page' do
66
- concat results_count_html
67
- concat UiBibz::Utils::Internationalization.new('ui_bibz.table.pagination.per_page', default: 'Per page: ').translate
68
- store.parameters.with_indifferent_access.reject { |k, v| default_parameters?(k) || v.blank? }.each do |k, v|
69
- concat tag(:input, type: 'hidden', name: k, value: v)
70
- end
70
+ concat(
71
+ content_tag(:span, class: 'table-pagination-per-page-label') do
72
+ concat results_count_html
73
+ concat UiBibz::Utils::Internationalization.new('ui_bibz.table.pagination.per_page', default: 'Per page: ').translate
74
+ store.parameters.with_indifferent_access.reject { |k, v| default_parameters?(k) || v.blank? }.each do |k, v|
75
+ concat tag(:input, type: 'hidden', name: k, value: v)
76
+ end
77
+ end
78
+ )
71
79
  concat select_tag('per_page', options_for_select([5, 10, 20, 30, 50, 100, 200, 500], store.per_page), class: 'form-select')
72
80
  concat tag(:input, type: 'hidden', name: 'store_id', value: store.id) unless store.id.nil? # If there is more 1 table in html page
73
81
  end
@@ -93,7 +93,7 @@ module UiBibz::Ui::Ux::Tables
93
93
  end
94
94
 
95
95
  def underscorize_hash(attr)
96
- attr.is_a?(Hash) ? "#{attr.keys.first}_#{attr.values.first}".to_sym : attr
96
+ attr.is_a?(Hash) ? :"#{attr.keys.first}_#{attr.values.first}" : attr
97
97
  end
98
98
 
99
99
  def default_parameters?(key)
data/lib/ui_bibz.rb CHANGED
@@ -4,7 +4,6 @@ require 'ui_bibz/railtie'
4
4
 
5
5
  require 'action_view'
6
6
  require 'will_paginate'
7
- require 'will-paginate-i18n'
8
7
  require 'bootstrap/engine'
9
8
 
10
9
  # require "zeitwerk"
@@ -66,7 +66,7 @@ class TableTest < ActionView::TestCase
66
66
  options = { paginable: true }
67
67
  pagination = UiBibz::Ui::Ux::Tables::Paginable.new(@store, options)
68
68
  actual = pagination.render if pagination.paginable?
69
- expected = "<div><nav class=\"pagination\"><ul class=\"pagination\" role=\"group\"><li class=\"previous page-item disabled\"><span class=\"page-link\">&laquo;</span></li> <li class=\"page-item active\"><span class=\"page-link\">1</span></li> <li class=\"page-item\"><a class=\"page-link\" rel=\"next\" href=\"/users?direction=asc&amp;page=2&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">2</a></li> <li class=\"page-item\"><a class=\"page-link\" href=\"/users?direction=asc&amp;page=3&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">3</a></li> <li class=\"page-item\"><a class=\"page-link\" href=\"/users?direction=asc&amp;page=4&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">4</a></li> <li class=\"page-item\"><a class=\"page-link\" href=\"/users?direction=asc&amp;page=5&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">5</a></li> <li class=\"page-item disabled\"><i class=\"page-link\">&hellip;</i></li> <li class=\"page-item\"><a class=\"page-link\" href=\"/users?direction=asc&amp;page=12&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">12</a></li> <li class=\"page-item\"><a class=\"page-link\" href=\"/users?direction=asc&amp;page=13&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">13</a></li> <li class=\"next page-item\"><a class=\"page-link\" rel=\"next\" href=\"/users?direction=asc&amp;page=2&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">&raquo;</a></li></ul></nav><form action=\"/users\" accept-charset=\"UTF-8\" method=\"get\"><div class=\"table-pagination-per-page\">Displaying User <b>1&nbsp;-&nbsp;2</b> of <b>25</b> in total | Per page: <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=\"only_path\" value=\"true\" /><select name=\"per_page\" id=\"per_page\" class=\"form-select\"><option value=\"5\">5</option>
69
+ expected = "<div><nav class=\"pagination\"><ul class=\"pagination\" role=\"group\"><li class=\"previous page-item disabled\"><span class=\"page-link\">&laquo;</span></li> <li class=\"page-item active\"><span class=\"page-link\">1</span></li> <li class=\"page-item\"><a class=\"page-link\" rel=\"next\" href=\"/users?direction=asc&amp;page=2&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">2</a></li> <li class=\"page-item\"><a class=\"page-link\" href=\"/users?direction=asc&amp;page=3&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">3</a></li> <li class=\"page-item\"><a class=\"page-link\" href=\"/users?direction=asc&amp;page=4&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">4</a></li> <li class=\"page-item\"><a class=\"page-link\" href=\"/users?direction=asc&amp;page=5&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">5</a></li> <li class=\"page-item disabled\"><i class=\"page-link\">&hellip;</i></li> <li class=\"page-item\"><a class=\"page-link\" href=\"/users?direction=asc&amp;page=12&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">12</a></li> <li class=\"page-item\"><a class=\"page-link\" href=\"/users?direction=asc&amp;page=13&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">13</a></li> <li class=\"next page-item\"><a class=\"page-link\" rel=\"next\" href=\"/users?direction=asc&amp;page=2&amp;search=Name+fr&amp;sort=users.name_fr&amp;store_id=users\">&raquo;</a></li></ul></nav><form action=\"/users\" accept-charset=\"UTF-8\" method=\"get\"><div class=\"table-pagination-per-page\"><span class=\"table-pagination-per-page-label\">Displaying User <b>1&nbsp;-&nbsp;2</b> of <b>25</b> in total | Per page: <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=\"only_path\" value=\"true\" /></span><select name=\"per_page\" id=\"per_page\" class=\"form-select\"><option value=\"5\">5</option>
70
70
  <option value=\"10\">10</option>
71
71
  <option value=\"20\">20</option>
72
72
  <option value=\"30\">30</option>
data/ui_bibz.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.description = UiBibz::DESCRIPTION
20
20
  s.license = UiBibz::LICENSE
21
21
 
22
- s.required_ruby_version = '>= 3.2.0'
22
+ s.required_ruby_version = '>= 3.3.0'
23
23
 
24
24
  s.files = `git ls-files`.split
25
25
  s.executables = `git ls-files -- bin/*`.split.map { |f| File.basename(f) }
@@ -31,9 +31,7 @@ Gem::Specification.new do |s|
31
31
  # Remove these dependencies after
32
32
  s.add_dependency 'bootstrap', '~> 5.3.0'
33
33
  s.add_dependency 'dartsass-sprockets', '~> 3.0.0'
34
- s.add_dependency 'will_paginate', '~> 3.3.0'
35
- s.add_dependency 'will_paginate-bootstrap4'
36
- s.add_dependency 'will-paginate-i18n'
34
+ s.add_dependency 'will_paginate'
37
35
  # Don't move factory_bot_rails to Gemfile because of bug
38
36
  s.add_development_dependency 'factory_bot_rails', '~> 4.0' # rubocop:disable Gemspec/DevelopmentDependencies
39
37