summaryrefslogtreecommitdiffstats
path: root/lib/redmine/menu_manager.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2017-01-10 18:33:36 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2017-01-10 18:33:36 +0000
commit2734eaffd823986c0da99ee4162000054571f422 (patch)
treee6fcd3d31fa3851a1196945a9dd473d041487923 /lib/redmine/menu_manager.rb
parentf1a42f21a6e6f7931973df3344525e222c9c7cc9 (diff)
downloadredmine-2734eaffd823986c0da99ee4162000054571f422.tar.gz
redmine-2734eaffd823986c0da99ee4162000054571f422.zip
Adds a link to all projects in the jump drop down (#23310).
git-svn-id: http://svn.redmine.org/redmine/trunk@16172 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'lib/redmine/menu_manager.rb')
-rw-r--r--lib/redmine/menu_manager.rb13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/redmine/menu_manager.rb b/lib/redmine/menu_manager.rb
index 9f90f681a..f1a9b1b35 100644
--- a/lib/redmine/menu_manager.rb
+++ b/lib/redmine/menu_manager.rb
@@ -68,12 +68,21 @@ module Redmine
menu_items[controller_name.to_sym][:default]
end
+ # Redirects user to the menu item
+ # Returns false if user is not authorized
+ def redirect_to_menu_item(name)
+ redirect_to_project_menu_item(nil, name)
+ end
+
# Redirects user to the menu item of the given project
# Returns false if user is not authorized
def redirect_to_project_menu_item(project, name)
- item = Redmine::MenuManager.items(:project_menu).detect {|i| i.name.to_s == name.to_s}
+ menu = project.nil? ? :application_menu : :project_menu
+ item = Redmine::MenuManager.items(menu).detect {|i| i.name.to_s == name.to_s}
if item && item.allowed?(User.current, project)
- redirect_to({item.param => project}.merge(item.url))
+ url = item.url
+ url = {item.param => project}.merge(url) if project
+ redirect_to url
return true
end
false