easy_menu 0.4.6 → 0.4.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/app/assets/javascripts/easy_menu_jquery.js +9 -4
- data/app/assets/stylesheets/_easy_menu_mixins.scss +9 -5
- data/lib/menu_bar.rb +33 -15
- metadata +3 -4
- data/Gemfile +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 67066f55569707ecc2b7bedec38a59e9e1ea638b0d91418ee321c12ddfa6809d
|
4
|
+
data.tar.gz: 852d321575f54dc6ce8fa566685fcd4f5beff1a925d15c2b25ba203ef8bdb0c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b1f37db3f5419795b2389b1de05d8ca93cfb582a61c5cb646bf5845f61b321c1502babb42b36c6b41e477ddedaeeff27078b90bbc493e3569b6ecbc6aead7aa
|
7
|
+
data.tar.gz: 4e4651a676c1a447359ce411f58ebe47f6218f0329ee9abe2121509fef8b369737b8bb62eddd33f6b0ff311ae74ae729fa5f423906b1a78296fff0b4839b65ff
|
@@ -22,7 +22,7 @@ $(document).ready(function() {
|
|
22
22
|
$(this).addClass('submitting');
|
23
23
|
});
|
24
24
|
|
25
|
-
// Allow users to open
|
25
|
+
// Allow users to open and close menus by clicking
|
26
26
|
$(menuBarRootSelector + '.menu_bar_content.with_menu').removeClass('no_js');
|
27
27
|
$(menuBarRootSelector + '.menu_bar_content.with_menu .menu_bar_item').click(function(){
|
28
28
|
var mbc = $(this).closest('.menu_bar_content');
|
@@ -31,9 +31,14 @@ $(document).ready(function() {
|
|
31
31
|
.find('.menu').trigger('opened')
|
32
32
|
});
|
33
33
|
|
34
|
-
// Close the menu
|
35
|
-
$(document).click
|
36
|
-
|
34
|
+
// Close the menu when the user clicks or there is a form submission
|
35
|
+
$(document).on('click submit', function(event) {
|
36
|
+
// Don't close the menu if the click was on a menu_bar_item. This case is handled by the previous event handler
|
37
|
+
if ($(event.target).closest('.menu_bar_content.with_menu .menu_bar_item').length > 0) { return }
|
38
|
+
|
39
|
+
// Don't close if we clicked inside a menu but not on a menu_item
|
40
|
+
if ($(event.target).closest('.menu').length > 0 && $(event.target).closest('.menu_item').length === 0) { return }
|
41
|
+
|
37
42
|
$(menuBarRootSelector + '.menu_bar_content.with_menu.open')
|
38
43
|
.removeClass('open')
|
39
44
|
.find('.menu').trigger('closed')
|
@@ -56,7 +56,7 @@ $menu-bar-item-pressed-zindex: 3;
|
|
56
56
|
|
57
57
|
}
|
58
58
|
@mixin gradient($start, $end){
|
59
|
-
// IE 9
|
59
|
+
// IE 9
|
60
60
|
background-image: data_url('image/svg+xml', '<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 1 1" preserveAspectRatio="none">
|
61
61
|
<linearGradient id="grad-ucgg-generated" gradientUnits="userSpaceOnUse" x1="0%" y1="0%" x2="0%" y2="100%">
|
62
62
|
<stop offset="0%" stop-color="#{$start}" stop-opacity="1"/>
|
@@ -64,6 +64,8 @@ $menu-bar-item-pressed-zindex: 3;
|
|
64
64
|
</linearGradient>
|
65
65
|
<rect x="0" y="0" width="1" height="1" fill="url(#grad-ucgg-generated)" />
|
66
66
|
</svg>');
|
67
|
+
// IE 10+
|
68
|
+
background-image: -ms-linear-gradient(top, $start 0%, $end 100%);
|
67
69
|
|
68
70
|
background-image: -moz-linear-gradient(top, $start 0%, $end 100%);
|
69
71
|
background-image: -webkit-linear-gradient(top, $start 0%, $end 100%);
|
@@ -104,7 +106,7 @@ $menu-bar-item-pressed-zindex: 3;
|
|
104
106
|
&.warning{ @include menu_bar_item_warning_colour }
|
105
107
|
&.inverse{ @include menu_bar_item_inverse_colour }
|
106
108
|
|
107
|
-
@include menu_bar_item_disabled
|
109
|
+
&.disabled { @include menu_bar_item_disabled }
|
108
110
|
}
|
109
111
|
|
110
112
|
@mixin menu_bar_item_base{
|
@@ -167,9 +169,11 @@ $menu-bar-item-pressed-zindex: 3;
|
|
167
169
|
}
|
168
170
|
|
169
171
|
@mixin menu_bar_item_disabled{
|
170
|
-
|
171
|
-
|
172
|
-
|
172
|
+
@include button_colour(#fefefe, #dddede, $menu-bar-item-disabled-text-color, 0 1px 1px rgba(255, 255, 255, 0.75));
|
173
|
+
cursor: default;
|
174
|
+
|
175
|
+
&:active{
|
176
|
+
box-shadow: none;
|
173
177
|
}
|
174
178
|
}
|
175
179
|
|
data/lib/menu_bar.rb
CHANGED
@@ -32,7 +32,7 @@ class MenuBar
|
|
32
32
|
|
33
33
|
yield mbg if block_given?
|
34
34
|
|
35
|
-
store_menu_bar_content(mbc)
|
35
|
+
store_menu_bar_content(mbc, options)
|
36
36
|
@groups << mbg
|
37
37
|
|
38
38
|
return mbg
|
@@ -48,7 +48,7 @@ class MenuBar
|
|
48
48
|
|
49
49
|
mbc = MenuBarContent.new(config, content, options)
|
50
50
|
|
51
|
-
store_menu_bar_content(mbc)
|
51
|
+
store_menu_bar_content(mbc, options)
|
52
52
|
|
53
53
|
return mbc
|
54
54
|
end
|
@@ -61,7 +61,7 @@ class MenuBar
|
|
61
61
|
mbi = MenuBarItem.new config, content, options
|
62
62
|
mbc = MenuBarContent.new(config, mbi, options[:menu_bar_content])
|
63
63
|
|
64
|
-
store_menu_bar_content(mbc)
|
64
|
+
store_menu_bar_content(mbc, options)
|
65
65
|
|
66
66
|
return mbi
|
67
67
|
end
|
@@ -73,7 +73,7 @@ class MenuBar
|
|
73
73
|
mbi = MenuBarItem.new config, mbin, options[:menu_bar_item]
|
74
74
|
mbc = MenuBarContent.new(config, mbi, options[:menu_bar_content])
|
75
75
|
|
76
|
-
store_menu_bar_content(mbc)
|
76
|
+
store_menu_bar_content(mbc, options)
|
77
77
|
|
78
78
|
return mbi
|
79
79
|
end
|
@@ -91,7 +91,7 @@ class MenuBar
|
|
91
91
|
# We give the menu bar content a special class so we can treat its contents differently than one without a menu inside
|
92
92
|
mbc = MenuBarContent.new(config, mbt, merge_class(options[:menu_bar_content], config[:menu_bar_content_with_menu_class]))
|
93
93
|
|
94
|
-
store_menu_bar_content(mbc)
|
94
|
+
store_menu_bar_content(mbc, options)
|
95
95
|
|
96
96
|
return m
|
97
97
|
end
|
@@ -100,7 +100,7 @@ class MenuBar
|
|
100
100
|
s = @template.content_tag :div, '', :class => config[:menu_bar_separator_class]
|
101
101
|
mbc = MenuBarContent.new(config, s, options.reverse_merge(:remove_if_dangling => @options[:remove_dangling_separators]))
|
102
102
|
|
103
|
-
store_menu_bar_content(mbc)
|
103
|
+
store_menu_bar_content(mbc, options)
|
104
104
|
|
105
105
|
return s
|
106
106
|
end
|
@@ -140,9 +140,11 @@ class MenuBar
|
|
140
140
|
return html_opts
|
141
141
|
end
|
142
142
|
|
143
|
-
|
144
|
-
|
145
|
-
|
143
|
+
def store_menu_bar_content(mbc, options = {})
|
144
|
+
if options[:index]
|
145
|
+
@content.insert(options[:index], mbc)
|
146
|
+
# Ensure that right aligned menu bar content appears on the page in the order it is inserted
|
147
|
+
elsif mbc.right_aligned?
|
146
148
|
@content.prepend(mbc)
|
147
149
|
else
|
148
150
|
@content << mbc
|
@@ -164,7 +166,7 @@ class MenuBar
|
|
164
166
|
end
|
165
167
|
|
166
168
|
def empty?
|
167
|
-
@content.
|
169
|
+
@content.all?(&:blank?)
|
168
170
|
end
|
169
171
|
|
170
172
|
def to_s
|
@@ -291,7 +293,9 @@ class MenuBar
|
|
291
293
|
|
292
294
|
yield mg if block_given?
|
293
295
|
|
294
|
-
|
296
|
+
mc = MenuContent.new(config, [mgt, mg], options[:menu_content])
|
297
|
+
|
298
|
+
store_menu_content(mc, options)
|
295
299
|
|
296
300
|
return mg
|
297
301
|
end
|
@@ -304,21 +308,27 @@ class MenuBar
|
|
304
308
|
content = block.call
|
305
309
|
end
|
306
310
|
|
307
|
-
|
311
|
+
mc = MenuContent.new(config, content, options)
|
312
|
+
|
313
|
+
store_menu_content(mc, options)
|
308
314
|
end
|
309
315
|
|
310
316
|
def menu_item(content, options = {})
|
311
317
|
initialize_options(options)
|
312
318
|
|
313
319
|
mi = MenuItem.new(config, content, options)
|
314
|
-
|
320
|
+
mc = MenuContent.new(config, mi, options[:menu_content])
|
321
|
+
|
322
|
+
store_menu_content(mc, options)
|
315
323
|
|
316
324
|
return mi
|
317
325
|
end
|
318
326
|
|
319
|
-
def separator
|
327
|
+
def separator(options = {})
|
320
328
|
s = @template.content_tag :div, '', :class => config[:menu_separator_class]
|
321
|
-
|
329
|
+
mc = MenuContent.new(config, s)
|
330
|
+
|
331
|
+
store_menu_content(mc, options)
|
322
332
|
|
323
333
|
return s
|
324
334
|
end
|
@@ -332,6 +342,14 @@ class MenuBar
|
|
332
342
|
|
333
343
|
return options
|
334
344
|
end
|
345
|
+
|
346
|
+
def store_menu_content(mc, options = {})
|
347
|
+
if options[:index]
|
348
|
+
@content.insert(options[:index], mc)
|
349
|
+
else
|
350
|
+
@content << mc
|
351
|
+
end
|
352
|
+
end
|
335
353
|
end
|
336
354
|
|
337
355
|
class MenuGroup < Menu
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy_menu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicholas Jakobsen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-06-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -31,7 +31,6 @@ executables: []
|
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
|
-
- Gemfile
|
35
34
|
- MIT-LICENSE
|
36
35
|
- README
|
37
36
|
- app/assets/images/icons.png
|
@@ -64,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
63
|
version: '0'
|
65
64
|
requirements: []
|
66
65
|
rubyforge_project:
|
67
|
-
rubygems_version: 2.
|
66
|
+
rubygems_version: 2.7.9
|
68
67
|
signing_key:
|
69
68
|
specification_version: 4
|
70
69
|
summary: Simple menu bar dsl for Rails views
|
data/Gemfile
DELETED