summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2013-11-05 15:56:47 -0800
committerelijah <elijah@riseup.net>2013-11-05 15:56:47 -0800
commit755767b7158e34b73df02d94c1aea1e995c8c240 (patch)
tree4c45abf72e997b20a4761aaeb3ed51ba19567b27
parentac7c35a84a6cc88807ab582517c731b1fb21aee6 (diff)
expand side navigation only when in current in path
-rw-r--r--app/helpers/navigation_helper.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/app/helpers/navigation_helper.rb b/app/helpers/navigation_helper.rb
index 48b57e4..54a52ff 100644
--- a/app/helpers/navigation_helper.rb
+++ b/app/helpers/navigation_helper.rb
@@ -76,15 +76,17 @@ module NavigationHelper
menu.each do |item|
title = menu_item_title(item)
if title
- haml 'li', :class => path_active(current_page_path, item) do
+ haml 'li', :class => path_active_class(current_page_path, item) do
haml 'a', menu_item_title(item), :href => menu_item_path(item), :class => "level#{level}"
end
- display_menu(item.submenu, level+1)
+ if path_open?(current_page_path, item)
+ display_menu(item.submenu, level+1)
+ end
end
end
end
- def path_active(page_path, menu_item)
+ def path_active_class(page_path, menu_item)
active = ''
if menu_item.path == page_path
active = 'active'
@@ -98,6 +100,10 @@ module NavigationHelper
active
end
+ def path_open?(page_path, menu_item)
+ menu_item.path == page_path || menu_item.path_prefix_of?(page_path)
+ end
+
def current_page_path
@current_page_path ||= begin
if @page