ui_bibz 3.0.3 → 3.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 381fe687b6f870e28180cb109cba31516bda4bffd2337434e51d6f41f42e849c
4
- data.tar.gz: 237ae1863d6fb0c7f8bbc04b76a332f8a6f35886e4956c4606b78da39bfbacc0
3
+ metadata.gz: '09075fad5e0a57ae7e47b66cb1e9d84d9e208674216317117fc4cbd74002ec83'
4
+ data.tar.gz: 717b8ed5d3cfe6bdfa003d2db3e240427e2b96a494f8d422e085d0563e60d09c
5
5
  SHA512:
6
- metadata.gz: b80564e26c0feb5283edded6dcbe44e762122270df77b2bc32e122c904ac5ae740ce456cadb03e0ae29987de28f886d381b921094fd8111a35f8993fe46a957b
7
- data.tar.gz: ebe6b69f108fa97985127a144e3f8c53a9d610c05880e83c1bc81eb3784cb6fa2075c2d56afe21892602a1f164463f1b62762cc296e79309019feec056ad3041
6
+ metadata.gz: 756bb32c729a77d6de316ed2279745e0bc22e3c75e0f9f4e7c8c8d560d60f2c938fb445c84922c46536b3c4c49b151db1f45bb4155668f2418acdbc864f5c46f
7
+ data.tar.gz: d6e66096bb51fa27ae70f6f3c4a0715bff947df9c1fd9ef07c5f2193e1251a5d037467be677fabf4e1a6c2a1f9a7d5b8dceca8c974833627ecfae10e22745e8e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ui_bibz (3.0.3)
4
+ ui_bibz (3.0.7)
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.1)
114
+ marcel (1.0.2)
115
115
  method_source (1.0.0)
116
- mini_mime (1.1.0)
116
+ mini_mime (1.1.2)
117
117
  mini_portile2 (2.6.1)
118
118
  minitest (5.14.4)
119
119
  nio4r (2.5.8)
120
- nokogiri (1.12.3)
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.20.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.4.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.19.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.9.1, < 2.0)
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.10.0)
173
+ rubocop-ast (1.12.0)
174
174
  parser (>= 3.0.1.1)
175
- rubocop-minitest (0.15.0)
175
+ rubocop-minitest (0.15.2)
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.11.3)
180
+ rubocop-rails (2.12.4)
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.0.0)
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
@@ -139,7 +139,7 @@ module UiBibz::Concerns::Models::Searchable
139
139
  end
140
140
  end
141
141
  else
142
- sql_subquery << "lower(CAST(#{to_s.underscore.pluralize.split('/').last}.#{attribute} AS TEXT)) LIKE :#{attribute}_#{i}"
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.3'
15
+ VERSION = '3.0.7'
16
16
  AUTHORS = ['Thooams'].freeze
17
17
  end
@@ -7,5 +7,9 @@ module UiBibzInputs
7
7
  def input(_wrapper_options)
8
8
  UiBibz::Ui::Core::Forms::Files::FileField.new(input_attribute_name, options, input_html_options).render
9
9
  end
10
+
11
+ def input_attribute_name
12
+ options[:multiple] ? "#{super}[]" : super
13
+ end
10
14
  end
11
15
  end
@@ -73,7 +73,7 @@ module UiBibz::Ui::Core::Forms::Dropdowns
73
73
  end
74
74
 
75
75
  def button_html
76
- content_tag :button, button_content, (options[:html_button] || {}).merge(class: join_classes('btn', button_status, size, options[:html_button].try(:[], :class)))
76
+ content_tag dropdown_tag, button_content, dropdown_html_options
77
77
  end
78
78
 
79
79
  def split_html
@@ -86,11 +86,27 @@ module UiBibz::Ui::Core::Forms::Dropdowns
86
86
  end
87
87
 
88
88
  def split_classes
89
- join_classes('btn', button_status, size, 'dropdown-toggle', 'dropdown-toggle-split', options[:split_html].try(:[], :class))
89
+ join_classes('btn', button_status, size, state, 'dropdown-toggle', 'dropdown-toggle-split', options[:split_html].try(:[], :class))
90
90
  end
91
91
 
92
92
  def src_only
93
93
  content_tag :span, 'Toggle Dropdown', class: 'sr-only'
94
94
  end
95
+
96
+ def dropdown_html_options
97
+ opts = (options[:html_button] || {})
98
+ opts = opts.merge(href: options[:url]) if options[:tag] == :a
99
+ opts.merge(class: join_classes('btn', button_status, state, size, options[:html_button].try(:[], :class)))
100
+ end
101
+
102
+ def split_dropdown_html_option
103
+ (options[:html_split] || {}).merge({
104
+ class: split_classes,
105
+ type: 'button',
106
+ 'data-bs-toggle' => 'dropdown',
107
+ 'aria-haspopup' => true,
108
+ 'aria-expanded' => false
109
+ })
110
+ end
95
111
  end
96
112
  end
@@ -59,10 +59,13 @@ module UiBibz::Ui::Core::Forms::Files
59
59
  end
60
60
 
61
61
  def format_value(value)
62
- if value.is_a? ActiveStorage::Attached::One
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
@@ -102,6 +102,7 @@ module UiBibz::Ui::Core::Forms::Selects
102
102
 
103
103
  def searchable
104
104
  add_html_data('enable_filtering') if options[:searchable]
105
+ add_html_data('fuzzy_search') if options[:searchable] == :fuzzy
105
106
  end
106
107
 
107
108
  def n_selected_text
@@ -78,7 +78,7 @@ module UiBibz::Ui::Ux::Tables
78
78
  end
79
79
 
80
80
  def from_current_results
81
- store.limit_value * store.current_page - store.limit_value + 1
81
+ (store.limit_value * store.current_page) - store.limit_value + 1
82
82
  end
83
83
 
84
84
  def to_current_results
@@ -43,13 +43,4 @@ class DropdownTest < ActionView::TestCase
43
43
 
44
44
  assert_equal expected, actual.render
45
45
  end
46
-
47
- test 'Split Dropdown' do
48
- actual = UiBibz::Ui::Core::Forms::Dropdowns::Dropdown.new('Split Dropdown').tap do |d|
49
- d.link 'state'
50
- end
51
- expected = "<div class=\"dropdown\"><button class=\"btn btn-secondary dropdown-toggle\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" id=\"#{actual.id}\">Split Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"#{actual.id}\"><a class=\"dropdown-item\" href=\"#\">state</a></div></div>"
52
-
53
- assert_equal expected, actual.render
54
- end
55
46
  end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ class SplitDropdownTest < ActionView::TestCase
5
+ include UiBibz::Helpers::Ui::CoreHelper
6
+
7
+ test 'Split Dropdown' do
8
+ actual = UiBibz::Ui::Core::Forms::Dropdowns::Dropdown.new('Split Dropdown').tap do |d|
9
+ d.link 'state'
10
+ end
11
+ expected = "<div class=\"dropdown\"><button class=\"btn btn-secondary dropdown-toggle\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" id=\"#{actual.id}\">Split Dropdown</button><div class=\"dropdown-menu\" arial-labelledby=\"#{actual.id}\"><a class=\"dropdown-item\" href=\"#\">state</a></div></div>"
12
+
13
+ assert_equal expected, actual.render
14
+ end
15
+
16
+ test 'Split Dropdown with link' do
17
+ actual = UiBibz::Ui::Core::Forms::Dropdowns::Dropdown.new('Split Dropdown', tag: :a, url: "#test").tap do |d|
18
+ d.link 'state'
19
+ end
20
+ expected = "<div class=\"dropdown\"><a class=\"btn btn-secondary dropdown-toggle\" role=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" id=\"#{actual.id}\">Split Dropdown</a><div class=\"dropdown-menu\" arial-labelledby=\"#{actual.id}\"><a class=\"dropdown-item\" href=\"#\">state</a></div></div>"
21
+
22
+ assert_equal expected, actual.render
23
+ end
24
+ 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.3
4
+ version: 3.0.7
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-08-19 00:00:00.000000000 Z
11
+ date: 2021-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -555,6 +555,7 @@ files:
555
555
  - test/ui/core/forms/choices/radio_field_test.rb
556
556
  - test/ui/core/forms/dates/date_picker_field_test.rb
557
557
  - test/ui/core/forms/dropdowns/dropdown_test.rb
558
+ - test/ui/core/forms/dropdowns/split_dropdown_test.rb
558
559
  - test/ui/core/forms/files/file_field_test.rb
559
560
  - test/ui/core/forms/numbers/formula_field_test.rb
560
561
  - test/ui/core/forms/numbers/number_field_test.rb
@@ -768,6 +769,7 @@ test_files:
768
769
  - test/ui/core/forms/choices/radio_field_test.rb
769
770
  - test/ui/core/forms/dates/date_picker_field_test.rb
770
771
  - test/ui/core/forms/dropdowns/dropdown_test.rb
772
+ - test/ui/core/forms/dropdowns/split_dropdown_test.rb
771
773
  - test/ui/core/forms/files/file_field_test.rb
772
774
  - test/ui/core/forms/numbers/formula_field_test.rb
773
775
  - test/ui/core/forms/numbers/number_field_test.rb