#
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
<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">
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"