smart_navigation 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 07dff0569fa646fb31996e620ac88508fa9a0f251ce87be5e2484aae20ec5afd
4
- data.tar.gz: 568f75e17cf02d1b862c402cae1e96cd8b1d321f25a2703078b55b12cda41096
3
+ metadata.gz: b8fb31ca40e5fec67942b532e4d901ff4088d1acefa21edc055a7ea57d0df3da
4
+ data.tar.gz: 776fa59e92ed07279958dfe3bf1573dd6f8cd251610f82be4133bb45e7fdddab
5
5
  SHA512:
6
- metadata.gz: 9f257bf449231301d13a1543b055e55679943e83de4d6522973c9cc2834e4a38bab4495299f2f4e8ef8bfe703b3fb59d340af0ea9b10cedae1f1c80af968a98f
7
- data.tar.gz: 1bb5951b40489454f706526e1372ee4421a3dfd9cd04a59f01eb7b8a11bb4c64e6e30cc856e5794f4f0eb3ffa3d53f61ae00314dff2512c268cfebbd2aa63a09
6
+ metadata.gz: a92c31d6ba8b5ea4f2a393b253a25ef03723c7eb9a733207dbd3c31894ddd9bc0b158ae6f53402623161bcf5bf631a078c112fef9c067fdd014be58a45916faf
7
+ data.tar.gz: 6cad3c37c85830b2ea409829b7f8e64421e53f25cab2842c1bba518239248b3eddff6000e0c70247cb836ddde798518621f56d1390188241f245e83f67360856
data/README.md CHANGED
@@ -32,6 +32,7 @@ Define the menu items in a hash:
32
32
  label: 'Dashboard',
33
33
  url: :root_path,
34
34
  icon: 'dashboard',
35
+ root: true,
35
36
  html: { target: :_blank },
36
37
  wrapper_html: { class: 'dashboard' }
37
38
  },
@@ -50,6 +50,14 @@ module SmartNavigation
50
50
  items.sort_by { |_k, v| v[:order] }.to_h
51
51
  end
52
52
 
53
+ # Check if url parent
54
+ def page_parent?(item)
55
+ url = item_url item
56
+ paths = [@context.request.path, @context.request.url]
57
+
58
+ item[:root].blank? && paths.any? { |i| i.starts_with?(url) }
59
+ end
60
+
53
61
  # Get menu item url
54
62
  def item_url(item)
55
63
  if item[:url].present?
@@ -72,15 +80,18 @@ module SmartNavigation
72
80
 
73
81
  # Check if current page
74
82
  def current_page?(item)
75
- url = item_url(item)
76
- @context.current_page?(url)
83
+ current = @context.current_page?(item_url(item))
84
+ current = page_parent?(item) if item[:children].blank? and current.blank?
85
+
86
+ current
77
87
  end
78
88
 
79
89
  # Check if current group
80
90
  def current_group?(item)
81
- current = true if current_page?(item)
91
+ current = current_page?(item)
82
92
  current = Hash(item[:children]).any? { |_k, v| current_page?(v) } if current.blank?
83
93
  current = Hash(item[:children]).any? { |_k, v| current_group?(v) } if current.blank?
94
+
84
95
  current
85
96
  end
86
97
 
@@ -1,3 +1,3 @@
1
1
  module SmartNavigation
2
- VERSION = '0.1.9'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_navigation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonian Guveli
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-13 00:00:00.000000000 Z
11
+ date: 2018-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview
@@ -102,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
102
  version: '0'
103
103
  requirements: []
104
104
  rubyforge_project:
105
- rubygems_version: 2.7.6
105
+ rubygems_version: 2.7.7
106
106
  signing_key:
107
107
  specification_version: 4
108
108
  summary: View helpers for navigation menus