From 755767b7158e34b73df02d94c1aea1e995c8c240 Mon Sep 17 00:00:00 2001 From: elijah Date: Tue, 5 Nov 2013 15:56:47 -0800 Subject: expand side navigation only when in current in path --- app/helpers/navigation_helper.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'app') 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 -- cgit v1.2.3