matestack-ui-bootstrap 1.4.0 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +65 -7
- data/app/concepts/matestack/ui/bootstrap/components/accordion.rb +17 -14
- data/app/concepts/matestack/ui/bootstrap/components/alert.rb +1 -1
- data/app/concepts/matestack/ui/bootstrap/components/badge.rb +4 -4
- data/app/concepts/matestack/ui/bootstrap/components/breadcrumb.rb +8 -6
- data/app/concepts/matestack/ui/bootstrap/components/button.rb +18 -3
- data/app/concepts/matestack/ui/bootstrap/components/carousel.rb +15 -14
- data/app/concepts/matestack/ui/bootstrap/components/close.rb +1 -1
- data/app/concepts/matestack/ui/bootstrap/components/collapse.rb +6 -6
- data/app/concepts/matestack/ui/bootstrap/components/dropdown.rb +3 -2
- data/app/concepts/matestack/ui/bootstrap/components/list_group.rb +87 -25
- data/app/concepts/matestack/ui/bootstrap/components/modal.rb +1 -1
- data/app/concepts/matestack/ui/bootstrap/components/navbar.rb +54 -20
- data/app/concepts/matestack/ui/bootstrap/components/pagination.rb +5 -5
- data/app/concepts/matestack/ui/bootstrap/components/popover.rb +1 -1
- data/app/concepts/matestack/ui/bootstrap/components/progress.rb +7 -7
- data/app/concepts/matestack/ui/bootstrap/components/scrollspy.rb +15 -0
- data/app/concepts/matestack/ui/bootstrap/components/spinner.rb +1 -1
- data/app/concepts/matestack/ui/bootstrap/components/tab_nav.rb +4 -2
- data/app/concepts/matestack/ui/bootstrap/components/toast.js +7 -1
- data/app/concepts/matestack/ui/bootstrap/components/tooltip.rb +8 -26
- data/app/concepts/matestack/ui/bootstrap/content/{collection → smart_collection}/collection.rb +18 -16
- data/app/concepts/matestack/ui/bootstrap/content/{collection → smart_collection}/collection.scss +0 -0
- data/app/concepts/matestack/ui/bootstrap/content/{collection → smart_collection}/content.rb +3 -3
- data/app/concepts/matestack/ui/bootstrap/content/{collection → smart_collection}/filter.rb +3 -3
- data/app/concepts/matestack/ui/bootstrap/content/{collection → smart_collection}/paginate.rb +3 -3
- data/app/concepts/matestack/ui/bootstrap/form/checkbox.rb +55 -46
- data/app/concepts/matestack/ui/bootstrap/form/input.rb +5 -16
- data/app/concepts/matestack/ui/bootstrap/form/radio.rb +22 -30
- data/app/concepts/matestack/ui/bootstrap/form/select.rb +12 -33
- data/app/concepts/matestack/ui/bootstrap/form/submit.rb +3 -2
- data/app/concepts/matestack/ui/bootstrap/form/switch.rb +80 -71
- data/app/concepts/matestack/ui/bootstrap/registry.rb +2 -4
- data/app/helpers/matestack/ui/bootstrap/application_helper.rb +9 -5
- data/app/javascript/matestack-ui-bootstrap/index.js +1 -3
- data/app/matestack/bootstrap/form/submit.rb +20 -0
- data/lib/matestack/ui/bootstrap/engine.rb +2 -2
- data/lib/matestack/ui/bootstrap/version.rb +1 -1
- data/lib/tasks/matestack/ui/bootstrap_tasks.rake +25 -25
- metadata +8 -12
- data/app/concepts/matestack/ui/bootstrap/components/chart.js +0 -232
- data/app/concepts/matestack/ui/bootstrap/components/chart.rb +0 -71
- data/app/concepts/matestack/ui/bootstrap/form/date.js +0 -38
- data/app/concepts/matestack/ui/bootstrap/form/date.rb +0 -98
- data/app/concepts/matestack/ui/bootstrap/form/select.haml +0 -11
@@ -63,7 +63,7 @@ class Matestack::Ui::Bootstrap::Components::Modal < Matestack::Ui::VueJsComponen
|
|
63
63
|
slot slots[:footer] if slots && slots[:footer]
|
64
64
|
if footer[:text].present?
|
65
65
|
button class: "btn #{footer[:class].present? ? footer[:class] : 'btn-secondary'}",
|
66
|
-
data: { dismiss: 'modal' }, attributes: { type: 'button' },
|
66
|
+
data: { "bs-dismiss": 'modal' }, attributes: { type: 'button' },
|
67
67
|
text: footer[:text]
|
68
68
|
end
|
69
69
|
end
|
@@ -4,7 +4,7 @@ class Matestack::Ui::Bootstrap::Components::Navbar < Matestack::Ui::Component
|
|
4
4
|
optional *POS_ATTRIBUTES
|
5
5
|
|
6
6
|
optional class: { as: :bs_class }
|
7
|
-
optional :items, :items_class, :theme, :
|
7
|
+
optional :items, :items_class, :theme, :expand_at, :color, :container_size
|
8
8
|
optional :collapse_class
|
9
9
|
# brand expect hash or string, possible keys for hash: text, path, img
|
10
10
|
optional :brand
|
@@ -37,26 +37,43 @@ class Matestack::Ui::Bootstrap::Components::Navbar < Matestack::Ui::Component
|
|
37
37
|
def brand_partial
|
38
38
|
brand = self.brand.is_a?(Hash) ? self.brand : { text: self.brand }
|
39
39
|
path = brand[:path].present? ? brand[:path] : "/"
|
40
|
-
|
41
|
-
|
42
|
-
|
40
|
+
brand[:path] = path
|
41
|
+
case brand[:type]
|
42
|
+
when :link
|
43
|
+
link brand.except(:text).merge(class: "navbar-brand") do
|
44
|
+
img height: 40, path: brand[:img], attributes: { loading: "lazy" } if brand[:img].present?
|
45
|
+
plain brand[:text]
|
46
|
+
end
|
47
|
+
else
|
48
|
+
transition brand.except(:text).merge(class: "navbar-brand") do
|
49
|
+
img height: 40, path: brand[:img], attributes: { loading: "lazy" } if brand[:img].present?
|
50
|
+
plain brand[:text]
|
51
|
+
end
|
43
52
|
end
|
44
53
|
end
|
45
54
|
|
46
55
|
def navbar_content_partial
|
47
56
|
div class: "collapse navbar-collapse #{collapse_class}", id: 'matestackNavbarContent' do
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
57
|
+
if items.present?
|
58
|
+
ul class: items_classes do
|
59
|
+
items.each do |item|
|
60
|
+
li class: "nav-item" do
|
61
|
+
case item[:type]
|
62
|
+
when :link
|
63
|
+
link link_config(item) do
|
64
|
+
bs_icon name: item[:icon], size: 20 if item[:icon]
|
65
|
+
span class: "ps-3", text: item[:text] if item[:text]
|
66
|
+
end
|
67
|
+
when :action
|
68
|
+
action action_config(item) do
|
69
|
+
bs_icon name: item[:icon], size: 20 if item[:icon]
|
70
|
+
span class: "ps-3", text: item[:text] if item[:text]
|
71
|
+
end
|
72
|
+
else
|
73
|
+
transition transition_config(item) do
|
74
|
+
bs_icon name: item[:icon], size: 20 if item[:icon]
|
75
|
+
span class: "ps-3", text: item[:text] if item[:text]
|
76
|
+
end
|
60
77
|
end
|
61
78
|
end
|
62
79
|
end
|
@@ -66,6 +83,24 @@ class Matestack::Ui::Bootstrap::Components::Navbar < Matestack::Ui::Component
|
|
66
83
|
end
|
67
84
|
end
|
68
85
|
|
86
|
+
def link_config(item)
|
87
|
+
config = item.except(:text)
|
88
|
+
config[:class] = "nav-link"
|
89
|
+
config
|
90
|
+
end
|
91
|
+
|
92
|
+
def transition_config(item)
|
93
|
+
config = item.except(:text)
|
94
|
+
config[:class] = "nav-link"
|
95
|
+
config
|
96
|
+
end
|
97
|
+
|
98
|
+
def action_config(item)
|
99
|
+
config = item.except(:text)
|
100
|
+
config[:class] = "nav-link"
|
101
|
+
config
|
102
|
+
end
|
103
|
+
|
69
104
|
def navbar_attributes
|
70
105
|
html_attributes.merge(
|
71
106
|
class: navbar_classes
|
@@ -78,7 +113,7 @@ class Matestack::Ui::Bootstrap::Components::Navbar < Matestack::Ui::Component
|
|
78
113
|
POS_ATTRIBUTES.each do |pos|
|
79
114
|
classes << "#{pos}".gsub('_','-') if self.send("#{pos}")
|
80
115
|
end
|
81
|
-
classes << "navbar-expand-#{ (
|
116
|
+
classes << "navbar-expand-#{ (expand_at.present? ? expand_at : "lg") }"
|
82
117
|
classes << "navbar-#{theme}" if theme.present?
|
83
118
|
classes << (color.present? ? "bg-#{color}" : "bg-#{theme}") if theme || color
|
84
119
|
classes << bs_class
|
@@ -96,8 +131,7 @@ class Matestack::Ui::Bootstrap::Components::Navbar < Matestack::Ui::Component
|
|
96
131
|
|
97
132
|
def toggle_attributes
|
98
133
|
toggle_classes = [].tap do |classes|
|
99
|
-
classes << '
|
100
|
-
classes << 'btn btn-link'
|
134
|
+
classes << 'btn btn-link navbar-toggler'
|
101
135
|
classes << "ms-auto" if @toggle[:position] == :right
|
102
136
|
classes << "me-auto" if @toggle[:position] == :left
|
103
137
|
classes << @toggle[:class] if @toggle[:class]
|
@@ -105,7 +139,7 @@ class Matestack::Ui::Bootstrap::Components::Navbar < Matestack::Ui::Component
|
|
105
139
|
|
106
140
|
{}.tap do |hash|
|
107
141
|
hash[:class] = toggle_classes
|
108
|
-
hash[:data] = { toggle: 'collapse', target: '#matestackNavbarContent' }
|
142
|
+
hash[:data] = { "bs-toggle": 'collapse', "bs-target": '#matestackNavbarContent' }
|
109
143
|
hash[:attributes] = { 'aria-controls': 'matestackNavbarContent', 'aria-expanded': 'false', 'aria-label': 'Toggle navigation' }
|
110
144
|
end
|
111
145
|
end
|
@@ -1,18 +1,18 @@
|
|
1
1
|
class Matestack::Ui::Bootstrap::Components::Pagination < Matestack::Ui::Component
|
2
|
-
|
2
|
+
|
3
3
|
optional :aria_label, :size, class: { as: :bs_class }
|
4
4
|
optional :items
|
5
5
|
|
6
|
-
def response
|
6
|
+
def response
|
7
7
|
nav pagination_attributes do
|
8
8
|
ul class: ul_classes do
|
9
9
|
if items.present?
|
10
10
|
items.each do |item|
|
11
11
|
li class: "page-item #{ 'active' if item[:active] }" do
|
12
12
|
if item[:type] == :link
|
13
|
-
link
|
13
|
+
link item.merge({ class: 'page-link' })
|
14
14
|
else
|
15
|
-
transition
|
15
|
+
transition item.merge({ class: 'page-link' })
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -37,4 +37,4 @@ class Matestack::Ui::Bootstrap::Components::Pagination < Matestack::Ui::Componen
|
|
37
37
|
end.join(' ').strip
|
38
38
|
end
|
39
39
|
|
40
|
-
end
|
40
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
1
|
class Matestack::Ui::Bootstrap::Components::Progress < Matestack::Ui::Component
|
2
|
-
|
2
|
+
|
3
3
|
optional class: { as: :bs_class }
|
4
4
|
optional :text, :valuemin, :valuemax
|
5
5
|
# progress expects a number or a list containing hashes with at least a :value
|
6
6
|
# other options are :text, :class, :variant, :striped, :animated, :aria_valuenow
|
7
7
|
optional :progress
|
8
|
-
|
8
|
+
optional :value
|
9
9
|
optional :variant, :striped, :animated, :height
|
10
10
|
|
11
|
-
def response
|
11
|
+
def response
|
12
12
|
div progress_attributes do
|
13
13
|
progress = self.progress.is_a?(Array) ? self.progress : [{ value: self.progress || value, text: self.text }]
|
14
14
|
progress.each do |prog|
|
15
|
-
progress_bar(prog[:value], valuemin, valuemax,
|
15
|
+
progress_bar(prog[:value], valuemin, valuemax,
|
16
16
|
text: prog[:text], klass: prog[:class], variant: prog[:variant] || variant,
|
17
17
|
striped: prog[:striped] || striped, animated: prog[:animated] || animated,
|
18
18
|
aria_valuenow: prog[:aria_valuenow]
|
@@ -27,7 +27,7 @@ class Matestack::Ui::Bootstrap::Components::Progress < Matestack::Ui::Component
|
|
27
27
|
def progress_attributes
|
28
28
|
attributes = {}.tap do |hash|
|
29
29
|
hash[:class] = "progress #{bs_class}".strip
|
30
|
-
hash[:attributes] = { style: "height: #{height}px;" } if height
|
30
|
+
hash[:attributes] = { style: "height: #{height}px;" } if height
|
31
31
|
end
|
32
32
|
html_attributes.merge(
|
33
33
|
attributes
|
@@ -36,7 +36,7 @@ class Matestack::Ui::Bootstrap::Components::Progress < Matestack::Ui::Component
|
|
36
36
|
|
37
37
|
def progress_bar(value, min, max, text: nil, klass: nil, variant: :primary, striped: false, animated: false, aria_valuenow: nil)
|
38
38
|
div progress_bar_attributes(value, klass, variant, striped, animated, aria_valuenow) do
|
39
|
-
plain text if text
|
39
|
+
plain text if text
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -62,4 +62,4 @@ class Matestack::Ui::Bootstrap::Components::Progress < Matestack::Ui::Component
|
|
62
62
|
classes << klass
|
63
63
|
end.join(' ').strip
|
64
64
|
end
|
65
|
-
end
|
65
|
+
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
class Matestack::Ui::Bootstrap::Components::Scrollspy < Matestack::Ui::Component
|
2
2
|
|
3
|
+
requires :height
|
4
|
+
|
3
5
|
optional :offset # pixel to offset from top, by default 10
|
4
6
|
optional method: { as: :bs_method} # find which section, by default auto
|
5
7
|
optional :target # scroll target id
|
@@ -19,12 +21,25 @@ class Matestack::Ui::Bootstrap::Components::Scrollspy < Matestack::Ui::Component
|
|
19
21
|
hash[:data] = { "bs-spy": "scroll", "bs-target": "#{target}" }
|
20
22
|
hash[:data].merge!("bs-offset": offset) if offset.present?
|
21
23
|
hash[:data].merge!("bs-method": :"#{bs_method}") if bs_method.present?
|
24
|
+
hash[:style] = "overflow-y: scroll; position: relative;"
|
25
|
+
hash[:style] << "height: #{parsed_height};"
|
26
|
+
hash[:tabindex] = 0
|
22
27
|
end
|
23
28
|
html_attributes.merge(
|
24
29
|
attributes
|
25
30
|
)
|
26
31
|
end
|
27
32
|
|
33
|
+
def parsed_height
|
34
|
+
if height.present?
|
35
|
+
if height.to_s.include?("px") || height.to_s.include?("em") || height.to_s.include?("rem")
|
36
|
+
height
|
37
|
+
else
|
38
|
+
"#{height}px"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
28
43
|
def scrollspy_classes
|
29
44
|
[].tap do |classes|
|
30
45
|
classes << bs_class
|
@@ -7,8 +7,10 @@ class Matestack::Ui::Bootstrap::Components::TabNav < Matestack::Ui::Component
|
|
7
7
|
class: { as: :bs_class }, attributes: { as: :bs_attrs}
|
8
8
|
|
9
9
|
def response
|
10
|
-
|
11
|
-
|
10
|
+
if items.present?
|
11
|
+
ul nav_attributes do
|
12
|
+
nav_items_partial
|
13
|
+
end
|
12
14
|
end
|
13
15
|
div class: "tab-content", id: "#{id}Content" do
|
14
16
|
yield_components
|
@@ -18,7 +18,13 @@ MatestackUiCore.Vue.component('matestack-ui-bootstrap-toast', {
|
|
18
18
|
self.showing = false;
|
19
19
|
}, 5000);
|
20
20
|
}
|
21
|
-
this.
|
21
|
+
if(this.componentConfig["delay"]){
|
22
|
+
setTimeout(function () {
|
23
|
+
self.showing = true;
|
24
|
+
}, parseInt(self.componentConfig["delay"]));
|
25
|
+
} else {
|
26
|
+
self.showing = true
|
27
|
+
}
|
22
28
|
this.eventData = event
|
23
29
|
},
|
24
30
|
hide: function(event){
|
@@ -11,48 +11,32 @@ class Matestack::Ui::Bootstrap::Components::Tooltip < Matestack::Ui::VueJsCompon
|
|
11
11
|
# for security reasons the sanitize, sanitizeFn and whiteList options cannot be supplied using data attributes.
|
12
12
|
# sanitize sanitize_fn white_list
|
13
13
|
# optional :content
|
14
|
+
requires :tooltip_title
|
14
15
|
optional :tag
|
15
16
|
optional class: { as: :bs_class }
|
16
17
|
optional id: { as: :bs_id }
|
17
|
-
DATA_ATTRIBUTES = %i[
|
18
|
+
DATA_ATTRIBUTES = %i[text variant animation placement tabindex trigger boundary offset popper_config]
|
18
19
|
optional *DATA_ATTRIBUTES
|
19
20
|
|
20
21
|
def response
|
21
22
|
case tag
|
22
23
|
when :div
|
23
24
|
div tooltip_attributes do
|
24
|
-
|
25
|
+
yield_components
|
25
26
|
end
|
26
|
-
when :span
|
27
|
-
span tooltip_attributes do
|
28
|
-
element_partial
|
29
|
-
end
|
30
|
-
when :link
|
31
|
-
link tooltip_attributes
|
32
27
|
else
|
33
|
-
|
28
|
+
span tooltip_attributes do
|
29
|
+
yield_components
|
30
|
+
end
|
34
31
|
end
|
35
32
|
end
|
36
33
|
|
37
34
|
protected
|
38
35
|
|
39
|
-
def element_partial
|
40
|
-
if options[:slots] && options[:slots][:element]
|
41
|
-
slot options[:slots][:element]
|
42
|
-
else
|
43
|
-
bs_btn variant: variant, attributes: { 'style': "pointer-events: none;" }, text: text
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
36
|
def tooltip_attributes
|
48
37
|
attributes = {}.tap do |hash|
|
49
38
|
hash[:class] = tooltip_classes
|
50
|
-
hash[:style] = variant if (tag == :button or !tag.present?)
|
51
|
-
|
52
|
-
hash[:attributes] = { role: "button", title: "#{title}", tabindex: "#{tabindex}" } if (tag == :link or tag == :a)
|
53
|
-
|
54
39
|
hash[:text] = text if text.present?
|
55
|
-
|
56
40
|
hash[:data] = {}.tap do |hash|
|
57
41
|
DATA_ALIAS_ATTRIBUTES.each do |attribute|
|
58
42
|
hash["bs-#{attribute}"] = self.send(:"bs_#{attribute}") if self.send(:"bs_#{attribute}")
|
@@ -62,7 +46,8 @@ class Matestack::Ui::Bootstrap::Components::Tooltip < Matestack::Ui::VueJsCompon
|
|
62
46
|
end
|
63
47
|
hash["bs-toggle"] = "tooltip"
|
64
48
|
hash["bs-type"] = tag
|
65
|
-
|
49
|
+
hash["bs-placement"] = "auto" if placement.nil?
|
50
|
+
hash["bs-title"] = tooltip_title
|
66
51
|
end
|
67
52
|
end
|
68
53
|
html_attributes.merge(
|
@@ -72,9 +57,6 @@ class Matestack::Ui::Bootstrap::Components::Tooltip < Matestack::Ui::VueJsCompon
|
|
72
57
|
|
73
58
|
def tooltip_classes
|
74
59
|
[].tap do |classes|
|
75
|
-
classes << "d-inline-block" if (tag == :span or tag == :div)
|
76
|
-
classes << "btn btn-#{variant || 'link'}" if (tag == :link or !tag.present?)
|
77
|
-
|
78
60
|
classes << bs_class
|
79
61
|
end.join(' ').strip
|
80
62
|
end
|
data/app/concepts/matestack/ui/bootstrap/content/{collection → smart_collection}/collection.rb
RENAMED
@@ -1,8 +1,8 @@
|
|
1
|
-
class Matestack::Ui::Bootstrap::Content::
|
1
|
+
class Matestack::Ui::Bootstrap::Content::SmartCollection::Collection < Matestack::Ui::Component
|
2
2
|
include Matestack::Ui::Core::Collection::Helper
|
3
|
-
include Matestack::Ui::Bootstrap::Content::
|
4
|
-
include Matestack::Ui::Bootstrap::Content::
|
5
|
-
include Matestack::Ui::Bootstrap::Content::
|
3
|
+
include Matestack::Ui::Bootstrap::Content::SmartCollection::Content
|
4
|
+
include Matestack::Ui::Bootstrap::Content::SmartCollection::Filter
|
5
|
+
include Matestack::Ui::Bootstrap::Content::SmartCollection::Paginate
|
6
6
|
|
7
7
|
# html attributes
|
8
8
|
optional id: { as: :bs_id }
|
@@ -29,7 +29,7 @@ class Matestack::Ui::Bootstrap::Content::Collection::Collection < Matestack::Ui:
|
|
29
29
|
attr_accessor :processed_filters
|
30
30
|
|
31
31
|
def response
|
32
|
-
div class: "smart-collection" do
|
32
|
+
div id: bs_id, class: "smart-collection" do
|
33
33
|
filter_partial
|
34
34
|
content
|
35
35
|
end
|
@@ -57,18 +57,20 @@ class Matestack::Ui::Bootstrap::Content::Collection::Collection < Matestack::Ui:
|
|
57
57
|
def filtered_query
|
58
58
|
return @filtered_query if @filtered_query
|
59
59
|
@filtered_query = items
|
60
|
-
filters.
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
60
|
+
unless filters.nil?
|
61
|
+
filters.select { |key, value| '.'.in? key.to_s }.each do |key, value|
|
62
|
+
associated_name = key.to_s.split(".").first
|
63
|
+
@filtered_query = @filtered_query.joins(associated_name.to_sym).all
|
64
|
+
if value.is_a?(Hash)
|
65
|
+
processed_filters[key] = value
|
66
|
+
@filtered_query = add_query_filter(@filtered_query, associated_name, key, value)
|
67
|
+
end
|
66
68
|
end
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
69
|
+
filters.reject { |key, value| '.'.in? key.to_s }.each do |key, value|
|
70
|
+
if value.is_a?(Hash)
|
71
|
+
processed_filters[key] = value
|
72
|
+
@filtered_query = add_query_filter(@filtered_query, nil, key, value)
|
73
|
+
end
|
72
74
|
end
|
73
75
|
end
|
74
76
|
@filtered_query
|
data/app/concepts/matestack/ui/bootstrap/content/{collection → smart_collection}/collection.scss
RENAMED
File without changes
|
@@ -1,9 +1,9 @@
|
|
1
|
-
module Matestack::Ui::Bootstrap::Content::
|
1
|
+
module Matestack::Ui::Bootstrap::Content::SmartCollection::Content
|
2
2
|
|
3
3
|
def content
|
4
|
-
bs_row
|
4
|
+
bs_row class: 'smart-collection-content' do
|
5
5
|
bs_col do
|
6
|
-
async id: collection_id, rerender_on: "#{collection_id}-update, #{rerender_on} " do
|
6
|
+
async id: "#{collection_id}-async", rerender_on: "#{collection_id}-update, #{rerender_on} " do
|
7
7
|
collection_content collection.config do
|
8
8
|
div class: responsive_class do
|
9
9
|
if slots && slots[:collection_rendering]
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module Matestack::Ui::Bootstrap::Content::
|
1
|
+
module Matestack::Ui::Bootstrap::Content::SmartCollection::Filter
|
2
2
|
|
3
3
|
def filter_partial
|
4
4
|
collection_filter collection.config do
|
@@ -24,9 +24,9 @@ module Matestack::Ui::Bootstrap::Content::Collection::Filter
|
|
24
24
|
}
|
25
25
|
case config[:type]
|
26
26
|
when :select
|
27
|
-
collection_filter_select attributes.merge(class: 'form-select', options: config[:options])
|
27
|
+
collection_filter_select attributes.merge(id: key, class: 'form-select', options: config[:options])
|
28
28
|
else
|
29
|
-
collection_filter_input attributes.merge(class: 'form-control')
|
29
|
+
collection_filter_input attributes.merge(id: key, class: 'form-control smart-collection-filter')
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|