bootstrap_ui_helper 0.3.0 → 0.3.1
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/CHANGELOG.md +2 -0
- data/app/helpers/button_helper.rb +2 -2
- data/app/helpers/dropdown_helper.rb +27 -24
- data/app/helpers/format_helper.rb +2 -4
- data/app/helpers/icon_helper.rb +4 -4
- data/app/helpers/modal_helper.rb +1 -1
- data/lib/bootstrap_ui_helper/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e26314f2f2b54fc50aefdafbc176c0ad65e5a463
|
4
|
+
data.tar.gz: 98f766aa947346510ebb84319f1a240dcd521d89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d09a35756e59cc30cb942c824d2847a9f6871745699e0df2a0d8e6b7ad285a408c6cc8989e9662e528244aad891972fc10cf942fcc1e38219b8f520d4fd3750a
|
7
|
+
data.tar.gz: a731800e6c67852e1a6621129a1fa37dc213b8be8dca949793c8101014ef13eb6d1013f7ecd8a55373bba40f4eee56763523b0bb1b2da3c0b33ee4d384d48817
|
data/CHANGELOG.md
ADDED
@@ -24,7 +24,7 @@ module ButtonHelper
|
|
24
24
|
end
|
25
25
|
|
26
26
|
prepend_class(options, layout, size)
|
27
|
-
options[:role] =
|
27
|
+
options[:role] = 'group'
|
28
28
|
options[:data] = (options[:data] || {}).merge({bui: 'btn_group', size: size})
|
29
29
|
|
30
30
|
content_tag :div, options, &block
|
@@ -32,7 +32,7 @@ module ButtonHelper
|
|
32
32
|
|
33
33
|
def button_toolbar(options={}, &block)
|
34
34
|
prepend_class(options, 'btn-toolbar')
|
35
|
-
|
35
|
+
options[:role] = 'toolbar'
|
36
36
|
|
37
37
|
content_tag :div, options, &block
|
38
38
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module DropdownHelper
|
2
2
|
|
3
|
-
# TODO: support split button dropdowns
|
3
|
+
# TODO: support split button dropdowns; use blocks to add list items
|
4
4
|
class DropdownListItem
|
5
5
|
include FormatHelper
|
6
6
|
include ActionView::Helpers
|
@@ -11,21 +11,21 @@ module DropdownHelper
|
|
11
11
|
@options = options
|
12
12
|
end
|
13
13
|
|
14
|
-
def
|
14
|
+
def render
|
15
15
|
content_tag :li, parse_type(options), options
|
16
16
|
end
|
17
17
|
|
18
18
|
def parse_type(options={})
|
19
|
-
case options
|
19
|
+
case options.delete(:type).try(:to_sym)
|
20
20
|
when :link
|
21
|
-
return link_to(options
|
22
|
-
tabindex: -1)
|
21
|
+
return link_to(options.delete(:text), options.delete(:link),
|
22
|
+
role: :menuitem, tabindex: -1)
|
23
23
|
when :header
|
24
24
|
prepend_class(options, 'dropdown-header')
|
25
|
-
return options
|
25
|
+
return options.delete(:text)
|
26
26
|
when :divider
|
27
27
|
prepend_class(options, 'divider')
|
28
|
-
options[:role] = 'separator'
|
28
|
+
options[:role] = 'separator' and return nil
|
29
29
|
else
|
30
30
|
end
|
31
31
|
end
|
@@ -34,30 +34,33 @@ module DropdownHelper
|
|
34
34
|
class DropdownCreator
|
35
35
|
include FormatHelper
|
36
36
|
include ActionView::Helpers
|
37
|
+
include ButtonHelper
|
37
38
|
|
38
39
|
attr_accessor :content
|
39
40
|
attr_accessor :list
|
40
41
|
attr_accessor :options
|
42
|
+
attr_accessor :btn_group_options
|
41
43
|
attr_accessor :output_buffer
|
42
44
|
|
43
45
|
def initialize(content, list, options)
|
44
|
-
@content
|
45
|
-
@list
|
46
|
-
@options
|
46
|
+
@content = content
|
47
|
+
@list = list
|
48
|
+
@options = options
|
49
|
+
@btn_group_options = options.delete(:btn_group_html) || {}
|
47
50
|
end
|
48
51
|
|
49
|
-
def
|
50
|
-
navbar, btn_id,
|
52
|
+
def render
|
53
|
+
navbar, btn_id, align, direction, size, type = process_dropdown_options(options)
|
51
54
|
|
52
55
|
btn_options = button_options(content, size, type, btn_id, navbar)
|
53
56
|
list_options = list_options(btn_id, align)
|
54
57
|
|
55
58
|
tag = navbar ? :li : :div
|
56
|
-
prepend_class(
|
57
|
-
(direction == :up ? 'dropup' : 'dropdown')
|
59
|
+
prepend_class(btn_group_options, 'btn-group',
|
60
|
+
(direction == :up ? 'dropup' : 'dropdown'))
|
58
61
|
|
59
|
-
content_tag tag,
|
60
|
-
(dropdown_button(btn_options) +
|
62
|
+
content_tag tag, btn_group_options do
|
63
|
+
(dropdown_button(btn_options.deep_merge(options)) +
|
61
64
|
dropdown_list(list, list_options)).html_safe
|
62
65
|
end
|
63
66
|
end
|
@@ -65,25 +68,26 @@ module DropdownHelper
|
|
65
68
|
private
|
66
69
|
def process_dropdown_options(options)
|
67
70
|
navbar = options.delete(:category).try(:to_sym) == :navbar
|
68
|
-
btn_id = options.delete(:id) || "dropdown-#{
|
69
|
-
klass = options.delete(:class)
|
71
|
+
btn_id = options.delete(:id) || "dropdown-#{SecureRandom.hex(3)}"
|
70
72
|
active = 'active' if options.delete(:active)
|
71
73
|
align = options.delete(:align).try(:to_sym)
|
72
74
|
direction = options.delete(:direction).try(:to_sym)
|
73
75
|
size = get_btn_size(options.delete(:size))
|
74
76
|
type = get_btn_type(options.delete(:type))
|
75
77
|
|
76
|
-
|
77
|
-
|
78
|
+
prepend_class(options, active)
|
79
|
+
|
80
|
+
[navbar, btn_id, align, direction, size, "btn #{type}"]
|
78
81
|
end
|
79
82
|
|
80
83
|
def button_options(content, size, type, id, navbar)
|
81
84
|
klass = navbar ? 'dropdown-toggle' : "dropdown-toggle #{size} #{type}"
|
85
|
+
prepend_class(options, klass)
|
82
86
|
|
83
87
|
{
|
84
88
|
content: content,
|
85
|
-
class: klass,
|
86
89
|
id: id,
|
90
|
+
type: 'button',
|
87
91
|
data: {toggle: 'dropdown'},
|
88
92
|
aria: {haspopup: true, expended: false},
|
89
93
|
navbar: navbar
|
@@ -118,17 +122,16 @@ module DropdownHelper
|
|
118
122
|
|
119
123
|
content_tag :ul, options do
|
120
124
|
list_items.map do |item|
|
121
|
-
DropdownListItem.new(item).
|
125
|
+
DropdownListItem.new(item).render
|
122
126
|
end.join('').html_safe
|
123
127
|
end
|
124
128
|
end
|
125
|
-
|
126
129
|
end
|
127
130
|
|
128
131
|
def dropdown(content=nil, list=[], options={})
|
129
132
|
return if content.blank? || list.empty?
|
130
133
|
|
131
|
-
DropdownCreator.new(content, list, options).
|
134
|
+
DropdownCreator.new(content, list, options).render
|
132
135
|
end
|
133
136
|
|
134
137
|
def navbar_dropdown(content=nil, list=[], options={})
|
@@ -4,9 +4,7 @@ module FormatHelper
|
|
4
4
|
string.squeeze(' ').strip
|
5
5
|
end
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
options[attr.to_sym] = squeeze_n_strip("#{attrs.join(' ')} #{options[attr.to_sym]}")
|
10
|
-
end
|
7
|
+
def prepend_class(options, *attrs)
|
8
|
+
options[:class] = squeeze_n_strip("#{attrs.join(' ')} #{options[:class]}")
|
11
9
|
end
|
12
10
|
end
|
data/app/helpers/icon_helper.rb
CHANGED
@@ -13,7 +13,7 @@ module IconHelper
|
|
13
13
|
@options = options
|
14
14
|
end
|
15
15
|
|
16
|
-
def
|
16
|
+
def render
|
17
17
|
icon_options = {
|
18
18
|
type: type,
|
19
19
|
size: options.delete(:size).presence || :normal,
|
@@ -29,13 +29,13 @@ module IconHelper
|
|
29
29
|
# stack = options.delete(:stack).presence
|
30
30
|
}
|
31
31
|
|
32
|
-
prepend_class(options, 'fa',
|
32
|
+
prepend_class(options, 'fa', render_fa_class(icon_options))
|
33
33
|
|
34
34
|
content_tag :i, nil, options
|
35
35
|
end
|
36
36
|
|
37
37
|
private
|
38
|
-
def
|
38
|
+
def render_fa_class(options)
|
39
39
|
type = "fa-#{options[:type]}"
|
40
40
|
raise 'Invalid Icon Type!' if ValidIcons::VALID_ICONS.exclude?(type)
|
41
41
|
|
@@ -107,6 +107,6 @@ module IconHelper
|
|
107
107
|
def icon(type=nil, options={})
|
108
108
|
raise 'Please provide an icon type!' if type.blank?
|
109
109
|
|
110
|
-
IconCreator.new(type, options).
|
110
|
+
IconCreator.new(type, options).render
|
111
111
|
end
|
112
112
|
end
|
data/app/helpers/modal_helper.rb
CHANGED
@@ -6,7 +6,7 @@ module ModalHelper
|
|
6
6
|
button_options = options.delete(:button) || {}
|
7
7
|
|
8
8
|
caption = button_options.delete(:caption) || 'Modal'
|
9
|
-
modal_dialog_id = options[:id] || "modal-#{
|
9
|
+
modal_dialog_id = options[:id] || "modal-#{SecureRandom.hex(3)}"
|
10
10
|
button_options[:data] = (button_options[:data] || {}).merge({toggle: 'modal', target: "##{modal_dialog_id}"})
|
11
11
|
size = case options.delete(:size).try(:to_sym)
|
12
12
|
when :xsmall
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bootstrap_ui_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sen Zhang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -46,6 +46,7 @@ extensions: []
|
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
48
|
- .gitignore
|
49
|
+
- CHANGELOG.md
|
49
50
|
- Gemfile
|
50
51
|
- LICENSE.txt
|
51
52
|
- README.md
|