ui_bibz 2.2.2 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +4 -4
- data/app/assets/javascripts/form.coffee +1 -5
- data/app/assets/javascripts/interface.coffee +8 -0
- data/app/assets/javascripts/ui_bibz.coffee.erb +1 -1
- data/app/assets/stylesheets/forms.sass +5 -0
- data/app/assets/stylesheets/notifications.sass +8 -1
- data/config/initializers/will_paginate.rb +1 -1
- data/lib/ui_bibz/helpers/ui/core/boxes_helper.rb +9 -0
- data/lib/ui_bibz/helpers/ui/core/notifications_helper.rb +17 -0
- data/lib/ui_bibz/infos.rb +2 -2
- data/lib/ui_bibz/ui/base.rb +1 -1
- data/lib/ui_bibz/ui/core/boxes/card.rb +2 -0
- data/lib/ui_bibz/ui/core/boxes/card_accordion.rb +65 -0
- data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +12 -1
- data/lib/ui_bibz/ui/core/component.rb +12 -4
- data/lib/ui_bibz/ui/core/forms/buttons/button.rb +14 -4
- data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +0 -1
- data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +4 -2
- data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +9 -12
- data/lib/ui_bibz/ui/core/forms/selects/select_field.rb +7 -14
- data/lib/ui_bibz/ui/core/navigations/link.rb +12 -0
- data/lib/ui_bibz/ui/core/notifications/components/toast_body.rb +50 -0
- data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +62 -0
- data/lib/ui_bibz/ui/core/notifications/spinner.rb +89 -0
- data/lib/ui_bibz/ui/core/notifications/toast.rb +97 -0
- data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +16 -5
- data/lib/ui_bibz.rb +3 -0
- data/test/simple_form_test.rb +7 -7
- data/test/ui/core/component_test.rb +1 -0
- data/test/ui/core/forms/buttons/button_group_test.rb +3 -3
- data/test/ui/core/forms/buttons/button_test.rb +44 -9
- data/test/ui/core/forms/choices/checkbox_field_test.rb +1 -1
- data/test/ui/core/forms/selects/dropdown_select_field_test.rb +10 -10
- data/test/ui/core/forms/selects/select_field_test.rb +2 -2
- data/test/ui/core/forms/surrounds/surround_field_test.rb +2 -2
- data/test/ui/core/navigations/link_test.rb +26 -0
- data/test/ui/core/navigations/navbar_test.rb +1 -1
- data/test/ui/core/navigations/toolbar_test.rb +2 -2
- data/test/ui/core/notifications/spinner_test.rb +33 -0
- data/test/ui/core/notifications/toast_test.rb +15 -0
- data/test/ui/ux/containers/panel_test.rb +4 -4
- data/ui_bibz.gemspec +1 -1
- data/vendor/assets/javascripts/bootstrap-select.js.map +1 -1
- data/vendor/assets/javascripts/bootstrap-select.min.js +3 -3
- data/vendor/assets/stylesheets/bootstrap-select.css.map +1 -1
- data/vendor/assets/stylesheets/bootstrap-select.min.css +3 -3
- metadata +19 -8
@@ -0,0 +1,89 @@
|
|
1
|
+
module UiBibz::Ui::Core::Notifications
|
2
|
+
|
3
|
+
# Create a spinner
|
4
|
+
#
|
5
|
+
# This element is an extend of UiBibz::Ui::Core::Component.
|
6
|
+
#
|
7
|
+
# ==== Attributes
|
8
|
+
#
|
9
|
+
# * +content+ - Content of element
|
10
|
+
# * +options+ - Options of element
|
11
|
+
# * +html_options+ - Html Options of element
|
12
|
+
#
|
13
|
+
# ==== Options
|
14
|
+
#
|
15
|
+
# You can add HTML attributes using the +html_options+.
|
16
|
+
# You can pass arguments in options attribute:
|
17
|
+
# * +status+ - status of élement with symbol value:
|
18
|
+
# (+:primary+, +:secondary+, +:success+, +:danger+, +:warning+, +:info+, +:light+, +:dark+)
|
19
|
+
# * +size+
|
20
|
+
# (+:xs+, +:sm+, +:lg+)
|
21
|
+
# * +type+
|
22
|
+
# (+:border+, +:grow+)
|
23
|
+
#
|
24
|
+
# ==== Signatures
|
25
|
+
#
|
26
|
+
# UiBibz::Ui::Core::Notifications::Spinner.new(content, options = nil, html_options = nil)
|
27
|
+
#
|
28
|
+
# UiBibz::Ui::Core::Notifications::Spinner.new(options = nil, html_options = nil) do
|
29
|
+
# content
|
30
|
+
# end
|
31
|
+
#
|
32
|
+
# ==== Examples
|
33
|
+
#
|
34
|
+
# UiBibz::Ui::Core::Notifications::Spinner.new(content, status: :success, type: :pill).render
|
35
|
+
#
|
36
|
+
# UiBibz::Ui::Core::Notifications::Spinner.new() do
|
37
|
+
# #content
|
38
|
+
# end.render
|
39
|
+
#
|
40
|
+
# ==== Helper
|
41
|
+
#
|
42
|
+
# ui_spinner(content, options = {}, html_options = {})
|
43
|
+
#
|
44
|
+
# ui_spinner(options = {}, html_options = {}) do
|
45
|
+
# content
|
46
|
+
# end
|
47
|
+
#
|
48
|
+
class Spinner < UiBibz::Ui::Core::Component
|
49
|
+
|
50
|
+
# See UiBibz::Ui::Core::Component.initialize
|
51
|
+
def initialize content = nil, options = nil, html_options = nil, &block
|
52
|
+
super
|
53
|
+
end
|
54
|
+
|
55
|
+
# Render html tag
|
56
|
+
def pre_render
|
57
|
+
content_tag tag_html, html_options do
|
58
|
+
content_tag :span, @content || "Loading...", class: "sr-only"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
private
|
63
|
+
|
64
|
+
def component_html_options
|
65
|
+
super.merge({ role: "status" })
|
66
|
+
end
|
67
|
+
|
68
|
+
def component_html_classes
|
69
|
+
["spinner-#{ type }", status, size]
|
70
|
+
end
|
71
|
+
|
72
|
+
def status
|
73
|
+
"text-#{ @options[:status] || :secondary }" if options[:status]
|
74
|
+
end
|
75
|
+
|
76
|
+
def type
|
77
|
+
@options[:type] || "border"
|
78
|
+
end
|
79
|
+
|
80
|
+
def size
|
81
|
+
"spinner-#{ type }-#{ options[:size] }" if options[:size]
|
82
|
+
end
|
83
|
+
|
84
|
+
def tag_html
|
85
|
+
options[:tag] || :div
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
require 'ui_bibz/ui/core/notifications/components/toast_header'
|
2
|
+
require 'ui_bibz/ui/core/notifications/components/toast_body'
|
3
|
+
module UiBibz::Ui::Core::Notifications
|
4
|
+
|
5
|
+
# Create an alert
|
6
|
+
#
|
7
|
+
# This element is an extend of UiBibz::Ui::Core::Component.
|
8
|
+
#
|
9
|
+
# ==== Attributes
|
10
|
+
#
|
11
|
+
# * +content+ - Content of element
|
12
|
+
# * +options+ - Options of element
|
13
|
+
# * +html_options+ - Html Options of element
|
14
|
+
#
|
15
|
+
# ==== Options
|
16
|
+
#
|
17
|
+
# You can add HTML attributes using the +html_options+.
|
18
|
+
# You can pass arguments in options attribute:
|
19
|
+
# * +status+ - status of élement with symbol value:
|
20
|
+
# (+:default+, +:primary+, +:info+, +:warning+, +:danger+)
|
21
|
+
# * +glyph+ - [String | Hash] Add glyph with name or hash options
|
22
|
+
# * +name+ - [String]
|
23
|
+
# *+timeout+ - [Integer]
|
24
|
+
#
|
25
|
+
# ==== Signatures
|
26
|
+
#
|
27
|
+
# UiBibz::Ui::Core::Toast.new(content, options = nil, html_options = nil)
|
28
|
+
#
|
29
|
+
# UiBibz::Ui::Core::Toast.new(options = nil, html_options = nil) do
|
30
|
+
# content
|
31
|
+
# end
|
32
|
+
#
|
33
|
+
# ==== Examples
|
34
|
+
#
|
35
|
+
# UiBibz::Ui::Core::Toast.new(class: 'my-toast').tap |t|
|
36
|
+
# t.header "My header toast", glyph: 'eye', time: 'now'
|
37
|
+
# t.body "My body toast"
|
38
|
+
# end
|
39
|
+
#
|
40
|
+
# UiBibz::Ui::Core::Toast.new(class: 'my-toast').tap |t|
|
41
|
+
# t.header glyph: 'eye', time: 'now' do
|
42
|
+
# My header toast
|
43
|
+
# end
|
44
|
+
# t.body class: 'my-body-toast' do
|
45
|
+
# My body toast
|
46
|
+
# end
|
47
|
+
# end.render
|
48
|
+
#
|
49
|
+
# ==== Helper
|
50
|
+
#
|
51
|
+
# ui_toast(options = { tap: true }, html_options = {}) do |t|
|
52
|
+
# t.header "My header toast", glyph: 'eye', time: 'now'
|
53
|
+
# t.body "My body toast"
|
54
|
+
# end
|
55
|
+
#
|
56
|
+
class Toast < UiBibz::Ui::Core::Component
|
57
|
+
|
58
|
+
# See UiBibz::Ui::Core::Component.initialize
|
59
|
+
def initialize content = nil, options = nil, html_options = nil, &block
|
60
|
+
super
|
61
|
+
end
|
62
|
+
|
63
|
+
# Render html tag
|
64
|
+
def pre_render
|
65
|
+
content_tag :div, html_options do
|
66
|
+
concat @header
|
67
|
+
concat @body
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# Add Header which is a component
|
72
|
+
def header content = nil, options = nil, html_options = nil, &block
|
73
|
+
@header = UiBibz::Ui::Core::Notifications::Components::ToastHeader.new(content, options, html_options, &block).render
|
74
|
+
end
|
75
|
+
|
76
|
+
# Add Body which is a component
|
77
|
+
def body content = nil, options = nil, html_options = nil, &block
|
78
|
+
@body = UiBibz::Ui::Core::Notifications::Components::ToastBody.new(content, options, html_options, &block).render
|
79
|
+
end
|
80
|
+
|
81
|
+
private
|
82
|
+
|
83
|
+
def component_html_classes
|
84
|
+
super << 'toast'
|
85
|
+
end
|
86
|
+
|
87
|
+
def component_html_options
|
88
|
+
{ role: 'alert', "aria-live": "assertive", "aria-atomic": true }
|
89
|
+
end
|
90
|
+
|
91
|
+
def component_html_data
|
92
|
+
super
|
93
|
+
add_html_data "autohide", options[:auto_hide] if options[:auto_hide]
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
end
|
@@ -1,17 +1,28 @@
|
|
1
1
|
module PopoverExtension
|
2
2
|
|
3
|
+
TOOLTIP_METHODS = %i(animation container delay html placement selector template title trigger
|
4
|
+
offset fallback_placement boundary sanitize white_list santitize_fn)
|
5
|
+
|
6
|
+
POPOVER_METHODS = %i(animation container content delay html placement selector template title
|
7
|
+
trigger offset fallback_placement boundary sanitize white_list sanitize_fn)
|
8
|
+
|
3
9
|
def popover_data_html
|
4
10
|
unless options[:popover].blank?
|
5
11
|
add_html_data :toggle, "popover"
|
6
12
|
add_html_data :content, (options[:popover].kind_of?(String) ? options[:popover] : options[:popover][:content])
|
7
13
|
end
|
8
14
|
if options[:popover].kind_of?(Hash)
|
9
|
-
add_html_data
|
15
|
+
POPOVER_METHODS.each{ |mth| add_html_data(mth, options[:popover].try(:[], mth)) unless options[:popover].try(:[], mth).nil? }
|
10
16
|
add_html_data :placement, options[:popover].try(:[], :position) unless options[:popover].try(:[], :position).nil?
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def tooltip_data_html
|
21
|
+
add_html_data :toggle, "tooltip" unless options[:tooltip].nil?
|
22
|
+
|
23
|
+
if options[:tooltip].kind_of?(Hash)
|
24
|
+
TOOLTIP_METHODS.each{ |mth| add_html_data(mth, options[:tooltip].try(:[], mth)) unless options[:tooltip].try(:[], mth).nil? }
|
25
|
+
add_html_data :placement, options[:tooltip].try(:[], :position) unless options[:tooltip].try(:[], :position).nil?
|
15
26
|
end
|
16
27
|
end
|
17
28
|
|
data/lib/ui_bibz.rb
CHANGED
@@ -76,6 +76,7 @@ module UiBibz
|
|
76
76
|
|
77
77
|
module Boxes
|
78
78
|
autoload :Card, "ui_bibz/ui/core/boxes/card"
|
79
|
+
autoload :CardAccordion, "ui_bibz/ui/core/boxes/card_accordion"
|
79
80
|
autoload :CardColumn, "ui_bibz/ui/core/boxes/card_column"
|
80
81
|
autoload :CardDeck, "ui_bibz/ui/core/boxes/card_deck"
|
81
82
|
autoload :CardGroup, "ui_bibz/ui/core/boxes/card_group"
|
@@ -172,6 +173,8 @@ module UiBibz
|
|
172
173
|
autoload :Alert, "ui_bibz/ui/core/notifications/alert"
|
173
174
|
autoload :Badge, "ui_bibz/ui/core/notifications/badge"
|
174
175
|
autoload :ProgressBar, "ui_bibz/ui/core/notifications/progress_bar"
|
176
|
+
autoload :Spinner, "ui_bibz/ui/core/notifications/spinner"
|
177
|
+
autoload :Toast, "ui_bibz/ui/core/notifications/toast"
|
175
178
|
end
|
176
179
|
|
177
180
|
module Windows
|
data/test/simple_form_test.rb
CHANGED
@@ -47,7 +47,7 @@ class SimpleFormTest < ActionView::TestCase
|
|
47
47
|
f.input :name_fr, as: :ui_dropdown_select_field, collection: @users, label_method: :name_fr
|
48
48
|
end
|
49
49
|
|
50
|
-
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_dropdown_select_field optional user_name_fr\"><label class=\"control-label ui_dropdown_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"dropdown-select-field\"><option value=\"1\">test1</option>
|
50
|
+
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_dropdown_select_field optional user_name_fr\"><label class=\"control-label ui_dropdown_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"dropdown-select-field\" data-style=\"btn-secondary\" title=\"false\"><option value=\"1\">test1</option>
|
51
51
|
<option value=\"2\">test2</option></select></div></form>"
|
52
52
|
|
53
53
|
assert_equal expected, actual
|
@@ -59,7 +59,7 @@ class SimpleFormTest < ActionView::TestCase
|
|
59
59
|
f.input :name_fr, as: :ui_dropdown_select_field, collection: @continents, toto: 'lala', grouped: true, group_method: :countries
|
60
60
|
end
|
61
61
|
|
62
|
-
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_dropdown_select_field optional user_name_fr\"><label class=\"control-label ui_dropdown_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"dropdown-select-field\"><optgroup label=\"Europe\"><option value=\"1\">France</option>
|
62
|
+
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_dropdown_select_field optional user_name_fr\"><label class=\"control-label ui_dropdown_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"dropdown-select-field\" data-style=\"btn-secondary\" title=\"false\"><optgroup label=\"Europe\"><option value=\"1\">France</option>
|
63
63
|
<option value=\"2\">Deutchland</option></optgroup></select></div></form>"
|
64
64
|
|
65
65
|
assert_equal expected, actual
|
@@ -159,7 +159,7 @@ test1</textarea></div></form>"
|
|
159
159
|
f.input :name_fr, as: :ui_select_field, collection: @users, label_method: :name_fr
|
160
160
|
end
|
161
161
|
|
162
|
-
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_select_field optional user_name_fr\"><label class=\"control-label ui_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"select-field form-control\"><option value=\"1\">test1</option>
|
162
|
+
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_select_field optional user_name_fr\"><label class=\"control-label ui_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"select-field form-control custom-select\"><option value=\"1\">test1</option>
|
163
163
|
<option value=\"2\">test2</option></select></div></form>"
|
164
164
|
|
165
165
|
assert_equal expected, actual
|
@@ -170,7 +170,7 @@ test1</textarea></div></form>"
|
|
170
170
|
f.input :name_fr, as: :ui_select_field, refresh: { target: { data: [] }}, collection: @users, label_method: :name_fr
|
171
171
|
end
|
172
172
|
|
173
|
-
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_select_field optional user_name_fr\"><label class=\"control-label ui_select_field optional\" for=\"user_name_fr\">Name fr</label><div class=\"field-refresh input-group ui_surround_field\"><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"select-field form-control\"><option value=\"1\">test1</option>
|
173
|
+
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_select_field optional user_name_fr\"><label class=\"control-label ui_select_field optional\" for=\"user_name_fr\">Name fr</label><div class=\"field-refresh input-group ui_surround_field\"><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"select-field form-control custom-select\"><option value=\"1\">test1</option>
|
174
174
|
<option value=\"2\">test2</option></select><div class=\"input-group-btn\"><span data-connect=\"{"events":"click","mode":"remote","target":{"selector":"#user_name_fr","url":"","data":[]}}\" class=\"btn-secondary ui-bibz-connect btn input-refresh-button\"><i class=\"glyph fas fa-sync-alt\"></i> </span></div></div></div></form>"
|
175
175
|
|
176
176
|
assert_equal expected, actual
|
@@ -182,7 +182,7 @@ test1</textarea></div></form>"
|
|
182
182
|
f.input :name_fr, as: :ui_select_field, collection: @continents, toto: 'lala', grouped: true, group_method: :countries
|
183
183
|
end
|
184
184
|
|
185
|
-
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_select_field optional user_name_fr\"><label class=\"control-label ui_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"select-field form-control\"><optgroup label=\"Europe\"><option value=\"1\">France</option>
|
185
|
+
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_select_field optional user_name_fr\"><label class=\"control-label ui_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"select-field form-control custom-select\"><optgroup label=\"Europe\"><option value=\"1\">France</option>
|
186
186
|
<option value=\"2\">Deutchland</option></optgroup></select></div></form>"
|
187
187
|
|
188
188
|
assert_equal expected, actual
|
@@ -195,7 +195,7 @@ test1</textarea></div></form>"
|
|
195
195
|
f.input :name_fr, as: :ui_select_field, collection: @countries
|
196
196
|
end
|
197
197
|
|
198
|
-
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_select_field optional user_name_fr\"><label class=\"control-label ui_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"select-field form-control\"><option selected=\"selected\" value=\"1\">France</option>
|
198
|
+
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_select_field optional user_name_fr\"><label class=\"control-label ui_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"select-field form-control custom-select\"><option selected=\"selected\" value=\"1\">France</option>
|
199
199
|
<option value=\"2\">Deutchland</option></select></div></form>"
|
200
200
|
|
201
201
|
assert_equal expected, actual
|
@@ -208,7 +208,7 @@ test1</textarea></div></form>"
|
|
208
208
|
f.input :name_fr, as: :ui_select_field, collection: @continents, toto: 'lala', grouped: true, group_method: :countries
|
209
209
|
end
|
210
210
|
|
211
|
-
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_select_field optional user_name_fr\"><label class=\"control-label ui_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"select-field form-control\"><optgroup label=\"Europe\"><option selected=\"selected\" value=\"1\">France</option>
|
211
|
+
expected = "<form class=\"simple_form edit_user\" id=\"edit_user_1\" action=\"/users/1\" accept-charset=\"UTF-8\" method=\"post\"><input name=\"utf8\" type=\"hidden\" value=\"✓\" /><input type=\"hidden\" name=\"_method\" value=\"patch\" /><div class=\"form-group ui_select_field optional user_name_fr\"><label class=\"control-label ui_select_field optional\" for=\"user_name_fr\">Name fr</label><select name=\"user[name_fr]\" id=\"user_name_fr\" class=\"select-field form-control custom-select\"><optgroup label=\"Europe\"><option selected=\"selected\" value=\"1\">France</option>
|
212
212
|
<option value=\"2\">Deutchland</option></optgroup></select></div></form>"
|
213
213
|
|
214
214
|
assert_equal expected, actual
|
@@ -7,7 +7,7 @@ class ButtonGroupTest < ActionView::TestCase
|
|
7
7
|
actual = ui_button_group do |bg|
|
8
8
|
bg.button 'state'
|
9
9
|
end
|
10
|
-
expected = "<div class=\"btn-group\" role=\"group\"><button class=\"btn\">state</button></div>"
|
10
|
+
expected = "<div class=\"btn-group\" role=\"group\"><button class=\"btn-secondary btn\">state</button></div>"
|
11
11
|
|
12
12
|
assert_equal expected, actual
|
13
13
|
end
|
@@ -16,7 +16,7 @@ class ButtonGroupTest < ActionView::TestCase
|
|
16
16
|
actual = ui_button_group(position: :vertical) do |bg|
|
17
17
|
bg.button 'state'
|
18
18
|
end
|
19
|
-
expected = "<div class=\"btn-group-vertical\" role=\"group\"><button class=\"btn\">state</button></div>"
|
19
|
+
expected = "<div class=\"btn-group-vertical\" role=\"group\"><button class=\"btn-secondary btn\">state</button></div>"
|
20
20
|
|
21
21
|
assert_equal expected, actual
|
22
22
|
end
|
@@ -34,7 +34,7 @@ class ButtonGroupTest < ActionView::TestCase
|
|
34
34
|
actual = ui_button_group(size: :sm) do |bg|
|
35
35
|
bg.button 'state'
|
36
36
|
end
|
37
|
-
expected = "<div class=\"btn-group btn-group-sm\" role=\"group\"><button class=\"btn btn-sm\">state</button></div>"
|
37
|
+
expected = "<div class=\"btn-group btn-group-sm\" role=\"group\"><button class=\"btn-secondary btn btn-sm\">state</button></div>"
|
38
38
|
|
39
39
|
assert_equal expected, actual
|
40
40
|
end
|
@@ -5,7 +5,7 @@ class ButtonTest < ActionView::TestCase
|
|
5
5
|
|
6
6
|
test "button" do
|
7
7
|
actual = ui_button('state')
|
8
|
-
expected = "<button class=\"btn\">state</button>"
|
8
|
+
expected = "<button class=\"btn-secondary btn\">state</button>"
|
9
9
|
|
10
10
|
assert_equal expected, actual
|
11
11
|
end
|
@@ -26,56 +26,91 @@ class ButtonTest < ActionView::TestCase
|
|
26
26
|
|
27
27
|
test 'button disabled' do
|
28
28
|
actual = ui_button('state', state: :disabled)
|
29
|
-
expected = "<button class=\"disabled btn\" disabled=\"disabled\">state</button>"
|
29
|
+
expected = "<button class=\"disabled btn-secondary btn\" disabled=\"disabled\">state</button>"
|
30
30
|
|
31
31
|
assert_equal expected, actual
|
32
32
|
end
|
33
33
|
|
34
34
|
test 'button active' do
|
35
35
|
actual = ui_button('state', state: :active)
|
36
|
-
expected = "<button class=\"active btn\" aria-pressed=\"true\">state</button>"
|
36
|
+
expected = "<button class=\"active btn-secondary btn\" aria-pressed=\"true\">state</button>"
|
37
37
|
|
38
38
|
assert_equal expected, actual
|
39
39
|
end
|
40
40
|
|
41
41
|
test 'button badge' do
|
42
42
|
actual = ui_button('state', badge: 2)
|
43
|
-
expected = "<button class=\"btn\">state<span class=\"badge-secondary badge\">2</span></button>"
|
43
|
+
expected = "<button class=\"btn-secondary btn\">state<span class=\"badge-secondary badge\">2</span></button>"
|
44
44
|
|
45
45
|
assert_equal expected, actual
|
46
46
|
end
|
47
47
|
|
48
48
|
test 'button block' do
|
49
49
|
actual = ui_button('state', type: :block)
|
50
|
-
expected = "<button class=\"btn btn-block\">state</button>"
|
50
|
+
expected = "<button class=\"btn-secondary btn btn-block\">state</button>"
|
51
51
|
|
52
52
|
assert_equal expected, actual
|
53
53
|
end
|
54
54
|
|
55
55
|
test 'button size' do
|
56
56
|
actual = ui_button('state', size: :sm)
|
57
|
-
expected = "<button class=\"btn btn-sm\">state</button>"
|
57
|
+
expected = "<button class=\"btn-secondary btn btn-sm\">state</button>"
|
58
58
|
|
59
59
|
assert_equal expected, actual
|
60
60
|
end
|
61
61
|
|
62
62
|
test 'button toggle' do
|
63
63
|
actual = ui_button('state', toggle: true)
|
64
|
-
expected = "<button class=\"btn\" data-toggle=\"button\" aria-pressed=\"false\" autocomplete=\"off\">state</button>"
|
64
|
+
expected = "<button class=\"btn-secondary btn\" data-toggle=\"button\" aria-pressed=\"false\" autocomplete=\"off\">state</button>"
|
65
65
|
|
66
66
|
assert_equal expected, actual
|
67
67
|
end
|
68
68
|
|
69
69
|
test 'button glyph' do
|
70
70
|
actual = ui_button('state', glyph: 'diamond')
|
71
|
-
expected = "<button class=\"btn\"><i class=\"glyph fas fa-diamond\"></i> state</button>"
|
71
|
+
expected = "<button class=\"btn-secondary btn\"><i class=\"glyph fas fa-diamond\"></i> state</button>"
|
72
72
|
|
73
73
|
assert_equal expected, actual
|
74
74
|
end
|
75
75
|
|
76
76
|
test 'button glyph without text' do
|
77
77
|
actual = ui_button('state', glyph: 'diamond', text: false)
|
78
|
-
expected = "<button class=\"btn without-text\"><i title=\"state\" class=\"glyph fas fa-diamond\"></i></button>"
|
78
|
+
expected = "<button class=\"btn-secondary btn without-text\"><i title=\"state\" class=\"glyph fas fa-diamond\"></i></button>"
|
79
|
+
|
80
|
+
assert_equal expected, actual
|
81
|
+
end
|
82
|
+
|
83
|
+
test 'button with collapse' do
|
84
|
+
actual = ui_button('state', collapse: 'collapse-id')
|
85
|
+
expected = "<button class=\"btn-secondary btn\" data-toggle=\"collapse\" data-target=\"#collapse-id\">state</button>"
|
86
|
+
|
87
|
+
assert_equal expected, actual
|
88
|
+
end
|
89
|
+
|
90
|
+
test "button with simple popover" do
|
91
|
+
actual = ui_button('My Button', popover: 'My popover')
|
92
|
+
expected = "<button data-toggle=\"popover\" data-content=\"My popover\" class=\"btn-secondary btn\">My Button</button>"
|
93
|
+
|
94
|
+
assert_equal expected, actual
|
95
|
+
end
|
96
|
+
|
97
|
+
test "button with complex popover" do
|
98
|
+
actual = ui_button('My Button', popover: { content: 'My popover', position: :left })
|
99
|
+
expected = "<button data-toggle=\"popover\" data-content=\"My popover\" data-placement=\"left\" class=\"btn-secondary btn\">My Button</button>"
|
100
|
+
|
101
|
+
assert_equal expected, actual
|
102
|
+
end
|
103
|
+
|
104
|
+
test "button with simple tooltip" do
|
105
|
+
actual = ui_button('My Button', { tooltip: true }, { title: 'My tooltip' })
|
106
|
+
expected = "<button title=\"My tooltip\" data-toggle=\"tooltip\" class=\"btn-secondary btn\">My Button</button>"
|
107
|
+
|
108
|
+
assert_equal expected, actual
|
109
|
+
end
|
110
|
+
|
111
|
+
test "button with complex tooltip" do
|
112
|
+
actual = ui_button('My Button', tooltip: { title: 'My tooltip', position: :left })
|
113
|
+
expected = "<button data-toggle=\"tooltip\" data-title=\"My tooltip\" data-placement=\"left\" class=\"btn-secondary btn\">My Button</button>"
|
79
114
|
|
80
115
|
assert_equal expected, actual
|
81
116
|
end
|
@@ -3,7 +3,7 @@ require 'test_helper'
|
|
3
3
|
class CheckboxFieldTest < ActionView::TestCase
|
4
4
|
|
5
5
|
test 'checkbox_field' do
|
6
|
-
actual = UiBibz::Ui::Core::Forms::Choices::CheckboxField.new('John', { value: 1
|
6
|
+
actual = UiBibz::Ui::Core::Forms::Choices::CheckboxField.new('John', { value: 1 }).render
|
7
7
|
expected = "<div class=\"custom-control custom-checkbox\"><input type=\"hidden\" name=\"John\" id=\"John-hidden\" value=\"0\" /><input type=\"checkbox\" name=\"John\" id=\"John\" value=\"1\" class=\"custom-control-input\" /><label class=\"custom-control-label\" for=\"John\">John</label></div>"
|
8
8
|
|
9
9
|
assert_equal expected, actual
|
@@ -5,7 +5,7 @@ class DropdownSelectFieldTest < ActionView::TestCase
|
|
5
5
|
test 'dropdown_select_field' do
|
6
6
|
options = options_for_select(2.times.map{ |i| "option #{i}" })
|
7
7
|
actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', options_tags: options).render
|
8
|
-
expected = "<select name=\"test\" id=\"test\" class=\"dropdown-select-field\"></select>"
|
8
|
+
expected = "<select name=\"test\" id=\"test\" data-style=\"btn-secondary\" class=\"dropdown-select-field\"></select>"
|
9
9
|
|
10
10
|
assert_equal expected, actual
|
11
11
|
end
|
@@ -13,7 +13,7 @@ class DropdownSelectFieldTest < ActionView::TestCase
|
|
13
13
|
test 'dropdown_select_field searchable' do
|
14
14
|
options = options_for_select(2.times.map{ |i| "option #{i}" })
|
15
15
|
actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, searchable: true }).render
|
16
|
-
expected = "<select name=\"test\" id=\"test\" data-live-search=\"true\" class=\"dropdown-select-field\"></select>"
|
16
|
+
expected = "<select name=\"test\" id=\"test\" data-live-search=\"true\" data-style=\"btn-secondary\" class=\"dropdown-select-field\"></select>"
|
17
17
|
|
18
18
|
assert_equal expected, actual
|
19
19
|
end
|
@@ -21,7 +21,7 @@ class DropdownSelectFieldTest < ActionView::TestCase
|
|
21
21
|
test 'dropdown_select_field max_options' do
|
22
22
|
options = options_for_select(2.times.map{ |i| "option #{i}" })
|
23
23
|
actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, max_options: 2 }).render
|
24
|
-
expected = "<select name=\"test\" id=\"test\" data-max-options=\"2\" class=\"dropdown-select-field\"></select>"
|
24
|
+
expected = "<select name=\"test\" id=\"test\" data-max-options=\"2\" data-style=\"btn-secondary\" class=\"dropdown-select-field\"></select>"
|
25
25
|
|
26
26
|
assert_equal expected, actual
|
27
27
|
end
|
@@ -29,7 +29,7 @@ class DropdownSelectFieldTest < ActionView::TestCase
|
|
29
29
|
test 'dropdown_select_field selected_text_format' do
|
30
30
|
options = options_for_select(2.times.map{ |i| "option #{i}" })
|
31
31
|
actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, selected_text_format: "count > x" }).render
|
32
|
-
expected = "<select name=\"test\" id=\"test\" data-selected-text-format=\"count > x\" class=\"dropdown-select-field\"></select>"
|
32
|
+
expected = "<select name=\"test\" id=\"test\" data-selected-text-format=\"count > x\" data-style=\"btn-secondary\" class=\"dropdown-select-field\"></select>"
|
33
33
|
|
34
34
|
assert_equal expected, actual
|
35
35
|
end
|
@@ -37,7 +37,7 @@ class DropdownSelectFieldTest < ActionView::TestCase
|
|
37
37
|
test 'dropdown_select_field menu_size' do
|
38
38
|
options = options_for_select(2.times.map{ |i| "option #{i}" })
|
39
39
|
actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, menu_size: 2 }).render
|
40
|
-
expected = "<select name=\"test\" id=\"test\" data-size=\"2\" class=\"dropdown-select-field\"></select>"
|
40
|
+
expected = "<select name=\"test\" id=\"test\" data-size=\"2\" data-style=\"btn-secondary\" class=\"dropdown-select-field\"></select>"
|
41
41
|
|
42
42
|
assert_equal expected, actual
|
43
43
|
end
|
@@ -45,7 +45,7 @@ class DropdownSelectFieldTest < ActionView::TestCase
|
|
45
45
|
test 'dropdown_select_field actions_box' do
|
46
46
|
options = options_for_select(2.times.map{ |i| "option #{i}" })
|
47
47
|
actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, actions_box: true }).render
|
48
|
-
expected = "<select name=\"test\" id=\"test\" data-actions-box=\"true\" class=\"dropdown-select-field\"></select>"
|
48
|
+
expected = "<select name=\"test\" id=\"test\" data-style=\"btn-secondary\" data-actions-box=\"true\" class=\"dropdown-select-field\"></select>"
|
49
49
|
|
50
50
|
assert_equal expected, actual
|
51
51
|
end
|
@@ -53,7 +53,7 @@ class DropdownSelectFieldTest < ActionView::TestCase
|
|
53
53
|
test 'dropdown_select_field show_tick' do
|
54
54
|
options = options_for_select(2.times.map{ |i| "option #{i}" })
|
55
55
|
actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, show_tick: true }).render
|
56
|
-
expected = "<select name=\"test\" id=\"test\" class=\"dropdown-select-field show-tick\"></select>"
|
56
|
+
expected = "<select name=\"test\" id=\"test\" data-style=\"btn-secondary\" class=\"dropdown-select-field show-tick\"></select>"
|
57
57
|
|
58
58
|
assert_equal expected, actual
|
59
59
|
end
|
@@ -61,7 +61,7 @@ class DropdownSelectFieldTest < ActionView::TestCase
|
|
61
61
|
test 'dropdown_select_field show_menu_arrow' do
|
62
62
|
options = options_for_select(2.times.map{ |i| "option #{i}" })
|
63
63
|
actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, show_menu_arrow: true }).render
|
64
|
-
expected = "<select name=\"test\" id=\"test\" class=\"dropdown-select-field
|
64
|
+
expected = "<select name=\"test\" id=\"test\" data-style=\"btn-secondary\" class=\"dropdown-select-field\"></select>"
|
65
65
|
|
66
66
|
assert_equal expected, actual
|
67
67
|
end
|
@@ -69,14 +69,14 @@ class DropdownSelectFieldTest < ActionView::TestCase
|
|
69
69
|
test 'dropdown_select_field dropup' do
|
70
70
|
options = options_for_select(2.times.map{ |i| "option #{i}" })
|
71
71
|
actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { options_tags: options, dropup: true }).render
|
72
|
-
expected = "<select name=\"test\" id=\"test\" class=\"dropdown-select-field dropup\"></select>"
|
72
|
+
expected = "<select name=\"test\" id=\"test\" data-style=\"btn-secondary\" class=\"dropdown-select-field dropup\"></select>"
|
73
73
|
|
74
74
|
assert_equal expected, actual
|
75
75
|
end
|
76
76
|
|
77
77
|
test 'dropdown_select_field refresh' do
|
78
78
|
actual = UiBibz::Ui::Core::Forms::Selects::DropdownSelectField.new('test', { refresh: { mode: 'local', target: { data: [] }}}).render
|
79
|
-
expected = "<div class=\"field-refresh input-group ui_surround_field\"><select name=\"test\" id=\"test\" class=\"dropdown-select-field\"></select><div class=\"input-group-btn\"><span data-connect=\"{"events":"click","mode":"local","target":{"selector":"#test","url":"","data":[]}}\" class=\"btn-secondary ui-bibz-connect btn input-refresh-button\"><i class=\"glyph fas fa-sync-alt\"></i> </span></div></div>"
|
79
|
+
expected = "<div class=\"field-refresh input-group ui_surround_field\"><select name=\"test\" id=\"test\" data-style=\"btn-secondary\" class=\"dropdown-select-field\"></select><div class=\"input-group-btn\"><span data-connect=\"{"events":"click","mode":"local","target":{"selector":"#test","url":"","data":[]}}\" class=\"btn-secondary ui-bibz-connect btn input-refresh-button\"><i class=\"glyph fas fa-sync-alt\"></i> </span></div></div>"
|
80
80
|
|
81
81
|
assert_equal expected, actual
|
82
82
|
end
|
@@ -5,7 +5,7 @@ class SelectFieldTest < ActionView::TestCase
|
|
5
5
|
test "Select Field" do
|
6
6
|
options = options_for_select(2.times.map{ |i| "option #{i}" })
|
7
7
|
actual = UiBibz::Ui::Core::Forms::Selects::SelectField.new('example', option_tags: options).render
|
8
|
-
expected = "<select name=\"example\" id=\"example\" class=\"select-field form-control\"><option value=\"option 0\">option 0</option>
|
8
|
+
expected = "<select name=\"example\" id=\"example\" class=\"select-field form-control custom-select\"><option value=\"option 0\">option 0</option>
|
9
9
|
<option value=\"option 1\">option 1</option></select>"
|
10
10
|
|
11
11
|
assert_equal expected, actual
|
@@ -13,7 +13,7 @@ class SelectFieldTest < ActionView::TestCase
|
|
13
13
|
|
14
14
|
test "Select Field refresh" do
|
15
15
|
actual = UiBibz::Ui::Core::Forms::Selects::SelectField.new('example', refresh: { target: { url: '/' }}).render
|
16
|
-
expected = "<div class=\"field-refresh input-group ui_surround_field\"><select name=\"example\" id=\"example\" class=\"select-field form-control\"></select><div class=\"input-group-btn\"><span data-connect=\"{"events":"click","mode":"remote","target":{"selector":"#example","url":"/","data":[]}}\" class=\"btn-secondary ui-bibz-connect btn input-refresh-button\"><i class=\"glyph fas fa-sync-alt\"></i> </span></div></div>"
|
16
|
+
expected = "<div class=\"field-refresh input-group ui_surround_field\"><select name=\"example\" id=\"example\" class=\"select-field form-control custom-select\"></select><div class=\"input-group-btn\"><span data-connect=\"{"events":"click","mode":"remote","target":{"selector":"#example","url":"/","data":[]}}\" class=\"btn-secondary ui-bibz-connect btn input-refresh-button\"><i class=\"glyph fas fa-sync-alt\"></i> </span></div></div>"
|
17
17
|
|
18
18
|
assert_equal expected, actual
|
19
19
|
end
|
@@ -39,7 +39,7 @@ class SurroundFieldTest < ActionView::TestCase
|
|
39
39
|
actual = UiBibz::Ui::Core::Forms::Surrounds::SurroundField.new.tap do |sf|
|
40
40
|
sf.button 'Submit'
|
41
41
|
end.render
|
42
|
-
expected = "<div class=\"input-group ui_surround_field\"><div class=\"input-group-btn\"><button class=\"btn\">Submit</button></div></div>"
|
42
|
+
expected = "<div class=\"input-group ui_surround_field\"><div class=\"input-group-btn\"><button class=\"btn-secondary btn\">Submit</button></div></div>"
|
43
43
|
|
44
44
|
assert_equal expected, actual
|
45
45
|
end
|
@@ -50,7 +50,7 @@ class SurroundFieldTest < ActionView::TestCase
|
|
50
50
|
sf.addon '€'
|
51
51
|
sf.glyph 'pencil'
|
52
52
|
end.render
|
53
|
-
expected = "<div class=\"input-group ui_surround_field\"><div class=\"input-group-btn\"><button class=\"btn\">Submit</button></div><span class=\"input-group-addon\">€</span><span class=\"input-group-addon\"><i class=\"glyph fas fa-pencil\"></i></span></div>"
|
53
|
+
expected = "<div class=\"input-group ui_surround_field\"><div class=\"input-group-btn\"><button class=\"btn-secondary btn\">Submit</button></div><span class=\"input-group-addon\">€</span><span class=\"input-group-addon\"><i class=\"glyph fas fa-pencil\"></i></span></div>"
|
54
54
|
|
55
55
|
assert_equal expected, actual
|
56
56
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
class LinkTest < ActionView::TestCase
|
3
|
+
include UiBibz::Helpers::Ui::CoreHelper
|
4
|
+
|
5
|
+
test 'Link' do
|
6
|
+
actual = ui_link 'My link', url: "#link"
|
7
|
+
expected = "<a href=\"#link\">My link</a>"
|
8
|
+
|
9
|
+
assert_equal expected, actual
|
10
|
+
end
|
11
|
+
|
12
|
+
test 'Link without text' do
|
13
|
+
actual = ui_link 'My link', glyph: "gem", text: false, url: "#link"
|
14
|
+
expected = "<a href=\"#link\"><i title=\"My link\" class=\"glyph fas fa-gem\"></i></a>"
|
15
|
+
|
16
|
+
assert_equal expected, actual
|
17
|
+
end
|
18
|
+
|
19
|
+
test "Link with collapse option" do
|
20
|
+
actual = ui_link 'My link', url: "#link", collapse: 'collapse-id'
|
21
|
+
expected = "<a role=\"button\" data-toggle=\"collapse\" data-target=\"#collapse-id\" href=\"#link\">My link</a>"
|
22
|
+
|
23
|
+
assert_equal expected, actual
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|