ui_bibz 3.0.0.beta14 → 3.0.0.beta15
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/.github/workflows/ci.yml +1 -1
- data/Gemfile.lock +2 -2
- data/lib/ui_bibz.rb +2 -0
- data/lib/ui_bibz/infos.rb +2 -2
- data/lib/ui_bibz/inputs/ui_bibz_form/ui_bibz_form_builder.rb +8 -11
- data/lib/ui_bibz/ui/concerns/navigation_concern.rb +12 -0
- data/lib/ui_bibz/ui/concerns/notification_concern.rb +13 -0
- data/lib/ui_bibz/ui/core/component.rb +4 -0
- data/lib/ui_bibz/ui/core/forms/choices/components/choice.rb +8 -4
- data/lib/ui_bibz/ui/core/navigations/nav.rb +1 -5
- data/lib/ui_bibz/ui/core/navigations/navbar.rb +1 -5
- data/lib/ui_bibz/ui/core/notifications/popover.rb +2 -6
- data/lib/ui_bibz/ui/core/notifications/tooltip.rb +2 -6
- data/lib/ui_bibz/ui/ux/tables/components/store.rb +3 -0
- data/lib/ui_bibz/ui/ux/tables/extensions/paginable.rb +0 -3
- data/lib/ui_bibz/ui/ux/tables/table_pagination.rb +0 -3
- data/lib/ui_bibz/ui/ux/tables/table_pagination_per_page.rb +0 -3
- data/test/simple_form_test.rb +36 -27
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a24ee2f7f963d13b2f79652d8e02c196072e3d674c1f528a92b121598f6ccd08
|
4
|
+
data.tar.gz: 9dd65d798d69e14c08de9c5e2fd6c198e0df7def2fe06e22341124f1a96e2d05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f634662ead3cda0d2d6898352f9634666c3282d3e066a18eed7c76e3dd03b955b7cc465955584140d81a3d73e38f443fd537756f684d9d01e1831d6dc6cc90e0
|
7
|
+
data.tar.gz: 2d7b682c66482d611ec5ac47751027529caa59b5672bab233e9c413b0e3c45e82ec69c471330aae1a05002ea41aa353fd35de33e5677aa41b8ff3e70bf91e42b
|
data/.github/workflows/ci.yml
CHANGED
@@ -23,6 +23,6 @@ jobs:
|
|
23
23
|
- name: Test with Rake
|
24
24
|
uses: paambaati/codeclimate-action@v2.7.5
|
25
25
|
env:
|
26
|
-
CC_TEST_REPORTER_ID:
|
26
|
+
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
27
27
|
with:
|
28
28
|
coverageCommand: bundle exec rake
|
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.beta15)
|
5
5
|
will-paginate-i18n
|
6
6
|
will_paginate (~> 3.3.0)
|
7
7
|
will_paginate-bootstrap4
|
@@ -95,7 +95,7 @@ GEM
|
|
95
95
|
haml (>= 4.0, < 6)
|
96
96
|
nokogiri (>= 1.6.0)
|
97
97
|
ruby_parser (~> 3.5)
|
98
|
-
i18n (1.8.
|
98
|
+
i18n (1.8.9)
|
99
99
|
concurrent-ruby (~> 1.0)
|
100
100
|
iniparse (1.5.0)
|
101
101
|
jquery-rails (4.4.0)
|
data/lib/ui_bibz.rb
CHANGED
@@ -78,6 +78,8 @@ module UiBibz
|
|
78
78
|
module Concerns
|
79
79
|
autoload :HtmlConcern, 'ui_bibz/ui/concerns/html_concern'
|
80
80
|
autoload :CardItemableConcern, 'ui_bibz/ui/concerns/card_itemable_concern'
|
81
|
+
autoload :NavigationConcern, 'ui_bibz/ui/concerns/navigation_concern'
|
82
|
+
autoload :NotificationConcern, 'ui_bibz/ui/concerns/notification_concern'
|
81
83
|
end
|
82
84
|
|
83
85
|
# Core
|
data/lib/ui_bibz/infos.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
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.beta2'
|
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'
|
@@ -12,6 +12,6 @@ module UiBibz
|
|
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.0.
|
15
|
+
VERSION = '3.0.0.beta15'
|
16
16
|
AUTHORS = ['Thooams'].freeze
|
17
17
|
end
|
@@ -32,19 +32,16 @@ module UiBibzForm
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def ui_button_group(content = nil, opts = nil, html_options = nil, &block)
|
35
|
-
|
36
|
-
content = content.merge(template: @template, form: self)
|
37
|
-
|
38
|
-
input_classes = UiBibz::Utils::Screwdriver.join_classes('button_group', options[:input_html].try(:[], :class))
|
39
|
-
wrapper_html = (options[:input_html] || {}).merge({ class: input_classes })
|
40
|
-
|
41
|
-
content_tag :div, wrapper_html do
|
42
|
-
concat content_tag(:label, content[:label]) unless content[:label].nil?
|
43
|
-
concat UiBibz::Ui::Core::Forms::Buttons::ButtonGroup.new(content, opts, html_options).tap(&block).render
|
44
|
-
end
|
35
|
+
ui_component_group_by(UiBibz::Ui::Core::Forms::Buttons::ButtonGroup, content, opts, html_options, &block)
|
45
36
|
end
|
46
37
|
|
47
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
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def ui_component_group_by(component_class, content = nil, opts = nil, html_options = nil, &block)
|
48
45
|
content = (options || {}).merge(content || {})
|
49
46
|
content = content.merge(template: @template, form: self)
|
50
47
|
|
@@ -53,7 +50,7 @@ module UiBibzForm
|
|
53
50
|
|
54
51
|
content_tag :div, wrapper_html do
|
55
52
|
concat content_tag(:label, content[:label]) unless content[:label].nil?
|
56
|
-
concat
|
53
|
+
concat component_class.new(content, opts, html_options).tap(&block).render
|
57
54
|
end
|
58
55
|
end
|
59
56
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module UiBibz::Ui::Concerns::NavigationConcern #:nodoc:
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
def spacer(num = 'auto')
|
8
|
+
kls = " me-#{num}"
|
9
|
+
@items.last.html_options[:class].nil? ? @items.last.html_options[:class] = kls : @items.last.html_options[:class] << kls
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module UiBibz::Ui::Concerns::NotificationConcern #:nodoc:
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
def data_attributes
|
8
|
+
self.class.const_get('DATA_ATTRIBUTES').map do |data_attribute|
|
9
|
+
options[data_attribute].to_s.blank? ? nil : { "data-bs-#{data_attribute}" => data_attribute_value(data_attribute) }
|
10
|
+
end.compact.reduce(&:merge) || {}
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -122,6 +122,10 @@ module UiBibz::Ui::Core
|
|
122
122
|
# To turbolinks
|
123
123
|
data_turbolinks = html_options.try(:[], :data).try(:[], :turbolinks) || options.try(:delete, :turbolinks)
|
124
124
|
add_html_data(:turbolinks, value: data_turbolinks) unless data_turbolinks.nil?
|
125
|
+
|
126
|
+
# To Turbo
|
127
|
+
data_turbo = html_options.try(:[], :data).try(:[], :turbo) || options.try(:delete, :turbo)
|
128
|
+
add_html_data(:turbo, value: data_turbo) unless data_turbo.nil?
|
125
129
|
end
|
126
130
|
|
127
131
|
# Override this method to add html Options
|
@@ -82,10 +82,14 @@ module UiBibz::Ui::Core::Forms::Choices
|
|
82
82
|
if options[:label]
|
83
83
|
content_tag :label, options[:label], html_options.merge(for: input_id)
|
84
84
|
else
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
85
|
+
generated_label
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def generated_label
|
90
|
+
content_tag :label, html_options.merge(for: input_id) do
|
91
|
+
concat glyph_and_content_html(options[:text].nil? ? @content : ' ')
|
92
|
+
concat badge_html unless options[:badge].nil?
|
89
93
|
end
|
90
94
|
end
|
91
95
|
|
@@ -67,6 +67,7 @@ module UiBibz::Ui::Core::Navigations
|
|
67
67
|
#
|
68
68
|
class Nav < UiBibz::Ui::Core::Component
|
69
69
|
include UiBibz::Ui::Concerns::HtmlConcern
|
70
|
+
include UiBibz::Ui::Concerns::NavigationConcern
|
70
71
|
|
71
72
|
# See UiBibz::Ui::Core::Component.initialize
|
72
73
|
def initialize(content = nil, options = nil, html_options = nil, &block)
|
@@ -108,11 +109,6 @@ module UiBibz::Ui::Core::Navigations
|
|
108
109
|
@items << NavDropdown.new(content, options, html_options).tap(&block)
|
109
110
|
end
|
110
111
|
|
111
|
-
def spacer(num = 'auto')
|
112
|
-
kls = " me-#{num}"
|
113
|
-
@items.last.html_options[:class].nil? ? @items.last.html_options[:class] = kls : @items.last.html_options[:class] << kls
|
114
|
-
end
|
115
|
-
|
116
112
|
protected
|
117
113
|
|
118
114
|
def component_html_classes
|
@@ -75,6 +75,7 @@ module UiBibz::Ui::Core::Navigations
|
|
75
75
|
#
|
76
76
|
class Navbar < UiBibz::Ui::Core::Component
|
77
77
|
include UiBibz::Ui::Concerns::HtmlConcern
|
78
|
+
include UiBibz::Ui::Concerns::NavigationConcern
|
78
79
|
|
79
80
|
# See UiBibz::Ui::Core::Component.initialize
|
80
81
|
def initialize(content = nil, options = nil, html_options = nil, &block)
|
@@ -124,11 +125,6 @@ module UiBibz::Ui::Core::Navigations
|
|
124
125
|
@brand = UiBibz::Ui::Core::Navigations::NavbarBrand.new(content, options, html_options, &block).render
|
125
126
|
end
|
126
127
|
|
127
|
-
def spacer(num = 'auto')
|
128
|
-
kls = " me-#{num}"
|
129
|
-
@items.last.html_options[:class].nil? ? @items.last.html_options[:class] = kls : @items.last.html_options[:class] << kls
|
130
|
-
end
|
131
|
-
|
132
128
|
def id
|
133
129
|
@id ||= generate_id('navbar-id')
|
134
130
|
end
|
@@ -47,6 +47,8 @@ module UiBibz::Ui::Core::Notifications
|
|
47
47
|
# ui_glyph("diamond", popover: { title: "My content", position: :right})
|
48
48
|
#
|
49
49
|
class Popover < UiBibz::Ui::Core::Component
|
50
|
+
include UiBibz::Ui::Concerns::NotificationConcern
|
51
|
+
|
50
52
|
# Note that for security reasons the sanitize, sanitizeFn, and allowList
|
51
53
|
# options cannot be supplied using data attributes.
|
52
54
|
# https://getbootstrap.com/docs/5.0/components/popovers/#options
|
@@ -76,12 +78,6 @@ module UiBibz::Ui::Core::Notifications
|
|
76
78
|
end
|
77
79
|
end
|
78
80
|
|
79
|
-
def data_attributes
|
80
|
-
DATA_ATTRIBUTES.map do |data_attribute|
|
81
|
-
options[data_attribute].to_s.blank? ? nil : { "data-bs-#{data_attribute}" => data_attribute_value(data_attribute) }
|
82
|
-
end.compact.reduce(&:merge) || {}
|
83
|
-
end
|
84
|
-
|
85
81
|
def data_attribute_value(data_attribute)
|
86
82
|
options[data_attribute].is_a?(String) ? options[data_attribute].html_safe : options[data_attribute]
|
87
83
|
end
|
@@ -48,6 +48,8 @@ module UiBibz::Ui::Core::Notifications
|
|
48
48
|
# ui_glyph("diamond", tooltip: { title: "My content", position: :right})
|
49
49
|
#
|
50
50
|
class Tooltip < UiBibz::Ui::Core::Component
|
51
|
+
include UiBibz::Ui::Concerns::NotificationConcern
|
52
|
+
|
51
53
|
# Note that for security reasons the sanitize, sanitizeFn, and allowList
|
52
54
|
# options cannot be supplied using data attributes.
|
53
55
|
# https://getbootstrap.com/docs/5.0/components/tooltips/#options
|
@@ -76,12 +78,6 @@ module UiBibz::Ui::Core::Notifications
|
|
76
78
|
end
|
77
79
|
end
|
78
80
|
|
79
|
-
def data_attributes
|
80
|
-
DATA_ATTRIBUTES.map do |data_attribute|
|
81
|
-
options[data_attribute].to_s.blank? ? nil : { "data-bs-#{data_attribute}" => data_attribute_value(data_attribute) }
|
82
|
-
end.compact.reduce(&:merge) || {}
|
83
|
-
end
|
84
|
-
|
85
81
|
def data_attribute_value(data_attribute)
|
86
82
|
options[data_attribute].is_a?(String) ? options[data_attribute].html_safe : options[data_attribute]
|
87
83
|
end
|
@@ -8,6 +8,9 @@ module UiBibz::Ui::Ux::Tables
|
|
8
8
|
|
9
9
|
# Store Use WillPaginate store methods
|
10
10
|
def initialize(store)
|
11
|
+
raise 'Store is nil!' if store.nil?
|
12
|
+
raise 'Store can be created only with "table_search_pagination" method!' if store.try(:records).nil?
|
13
|
+
|
11
14
|
@records = store.records
|
12
15
|
@store = store
|
13
16
|
@model = store.model
|
@@ -26,9 +26,6 @@ module UiBibz::Ui::Ux::Tables
|
|
26
26
|
private
|
27
27
|
|
28
28
|
def store
|
29
|
-
raise 'Store is nil!' if @search_field.options[:store].nil?
|
30
|
-
raise 'Store can be created only with "table_search_pagination" method!' if @search_field.options[:store].try(:records).nil?
|
31
|
-
|
32
29
|
@store ||= Store.new @search_field.options[:store]
|
33
30
|
end
|
34
31
|
end
|
@@ -53,9 +53,6 @@ module UiBibz::Ui::Ux::Tables
|
|
53
53
|
|
54
54
|
# Store must be generated by *table_search_pagination* method
|
55
55
|
def store
|
56
|
-
raise 'Store is nil!' if @pagination.options[:store].nil?
|
57
|
-
raise 'Store can be created only with "table_search_pagination" method!' if @pagination.options[:store].try(:records).nil?
|
58
|
-
|
59
56
|
@store ||= Store.new @pagination.options[:store]
|
60
57
|
end
|
61
58
|
end
|
@@ -46,9 +46,6 @@ module UiBibz::Ui::Ux::Tables
|
|
46
46
|
private
|
47
47
|
|
48
48
|
def store
|
49
|
-
raise 'Store is nil!' if @per_page_field.options[:store].nil?
|
50
|
-
raise 'Store can be created only with "table_search_pagination" method!' if @per_page_field.options[:store].try(:records).nil?
|
51
|
-
|
52
49
|
@store ||= Store.new @per_page_field.options[:store]
|
53
50
|
end
|
54
51
|
|
data/test/simple_form_test.rb
CHANGED
@@ -237,31 +237,40 @@ test1</textarea></div></form>"
|
|
237
237
|
assert_equal expected, actual
|
238
238
|
end
|
239
239
|
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
240
|
+
test 'ui_button_group' do
|
241
|
+
actual = ui_form_for @user do |f|
|
242
|
+
f.ui_button_group do |bg|
|
243
|
+
bg.button "test"
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
expected = "<form class=\"simple_form\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"button_group\"><div class=\"btn-group\" role=\"group\"><button class=\"btn-secondary btn\">test</button></div></div></form>"
|
248
|
+
|
249
|
+
assert_equal expected, actual
|
250
|
+
end
|
251
|
+
|
252
|
+
test 'ui_choice_group' do
|
253
|
+
actual = ui_form_for @user do |f|
|
254
|
+
f.ui_choice_group do |cg|
|
255
|
+
cg.input :name_fr, as: :ui_checkbox_field
|
256
|
+
end
|
257
|
+
end
|
258
|
+
|
259
|
+
expected = "<form class=\"simple_form\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"button_group\"><div data-toggle=\"buttons\" class=\"btn-group button-choice btn-group-toggle\"><div class=\"form-check\"><input type=\"checkbox\" name=\"user[name_fr]\" id=\"user_name_fr\" value=\"test1\" class=\"ui_checkbox_field optional form-check-input\" checked=\"checked\" /><label class=\"form-check-label\" for=\"user_name_fr\">Name Fr</label></div></div></div></form>"
|
260
|
+
|
261
|
+
assert_equal expected, actual
|
262
|
+
end
|
263
|
+
|
264
|
+
test 'test surround field into simple form' do
|
265
|
+
actual = ui_form_for @user do |f|
|
266
|
+
f.ui_surround_field do |sf|
|
267
|
+
sf.input :name_en, as: :ui_text_field
|
268
|
+
sf.addon("€")
|
269
|
+
end
|
270
|
+
end
|
271
|
+
|
272
|
+
expected = "<form class=\"simple_form\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group surround_field\"><div class=\"input-group ui_surround_field\"><input type=\"text\" name=\"user[name_en]\" id=\"user_name_en\" value=\"test1 en\" class=\"form-control string ui_text_field optional\" /><span class=\"input-group-text\">€</span></div></div></form>"
|
273
|
+
|
274
|
+
assert_equal expected, actual
|
275
|
+
end
|
267
276
|
end
|
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.beta15
|
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-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -240,7 +240,7 @@ dependencies:
|
|
240
240
|
- - ">="
|
241
241
|
- !ruby/object:Gem::Version
|
242
242
|
version: '0'
|
243
|
-
description: A Rails Interface Framework using Bootstrap 5.0.0.
|
243
|
+
description: A Rails Interface Framework using Bootstrap 5.0.0.beta2.
|
244
244
|
email: thomas@hummel.link
|
245
245
|
executables:
|
246
246
|
- test
|
@@ -312,6 +312,8 @@ files:
|
|
312
312
|
- lib/ui_bibz/ui/base.rb
|
313
313
|
- lib/ui_bibz/ui/concerns/card_itemable_concern.rb
|
314
314
|
- lib/ui_bibz/ui/concerns/html_concern.rb
|
315
|
+
- lib/ui_bibz/ui/concerns/navigation_concern.rb
|
316
|
+
- lib/ui_bibz/ui/concerns/notification_concern.rb
|
315
317
|
- lib/ui_bibz/ui/core/boxes/card.rb
|
316
318
|
- lib/ui_bibz/ui/core/boxes/card_accordion.rb
|
317
319
|
- lib/ui_bibz/ui/core/boxes/card_column.rb
|
@@ -666,7 +668,7 @@ rubygems_version: 3.1.2
|
|
666
668
|
signing_key:
|
667
669
|
specification_version: 4
|
668
670
|
summary: Ui Bibz is an Ui Framework that allows you to build an interface very quickly
|
669
|
-
and simply using Bootstrap 5.0.0.
|
671
|
+
and simply using Bootstrap 5.0.0.beta2.
|
670
672
|
test_files:
|
671
673
|
- test/dummy/README.rdoc
|
672
674
|
- test/dummy/Rakefile
|