Use route helper in #link_to_project.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11184 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2013-01-14 19:16:29 +00:00
parent 9a80e118b9
commit 1da158edcf
3 changed files with 29 additions and 4 deletions

View File

@ -141,10 +141,24 @@ module ApplicationHelper
#
def link_to_project(project, options={}, html_options = nil)
if project.archived?
h(project)
else
h(project.name)
elsif options.key?(:action)
ActiveSupport::Deprecation.warn "#link_to_project with :action option is deprecated and will be removed in Redmine 3.0."
url = {:controller => 'projects', :action => 'show', :id => project}.merge(options)
link_to(h(project), url, html_options)
link_to project.name, url, html_options
else
link_to project.name, project_path(project, options), html_options
end
end
# Generates a link to a project settings if active
def link_to_project_settings(project, options={}, html_options=nil)
if project.active?
link_to project.name, settings_project_path(project, options), html_options
elsif project.archived?
h(project.name)
else
link_to project.name, project_path(project, options), html_options
end
end

View File

@ -27,7 +27,7 @@
<tbody>
<% project_tree(@projects) do |project, level| %>
<tr class="<%= cycle("odd", "even") %> <%= project.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
<td class="name"><span><%= link_to_project(project, {:action => (project.active? ? 'settings' : 'show')}, :title => project.short_description) %></span></td>
<td class="name"><span><%= link_to_project_settings(project, {}, :title => project.short_description) %></span></td>
<td align="center"><%= checked_image project.is_public? %></td>
<td align="center"><%= format_date(project.created_on) %></td>
<td class="buttons">

View File

@ -1075,6 +1075,17 @@ RAW
link_to_project(project, {:action => 'settings'}, :class => "project")
end
def test_link_to_project_settings
project = Project.find(1)
assert_equal '<a href="/projects/ecookbook/settings">eCookbook</a>', link_to_project_settings(project)
project.status = Project::STATUS_CLOSED
assert_equal '<a href="/projects/ecookbook">eCookbook</a>', link_to_project_settings(project)
project.status = Project::STATUS_ARCHIVED
assert_equal 'eCookbook', link_to_project_settings(project)
end
def test_link_to_legacy_project_with_numerical_identifier_should_use_id
# numeric identifier are no longer allowed
Project.update_all "identifier=25", "id=1"