summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2012-08-13 14:41:53 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2012-08-13 14:41:53 +0000
commit861ca78179869e13b4b73baa6968127cfd30c401 (patch)
tree8495a2ab1e64cca78524c49181f18d1bf7eeee06
parent8fb1a7e3ccc7b501704a7873b328c1b976554cab (diff)
downloadredmine-861ca78179869e13b4b73baa6968127cfd30c401.tar.gz
redmine-861ca78179869e13b4b73baa6968127cfd30c401.zip
Fixed that roadmap anchor links can be ambigous (#11540).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10200 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/helpers/versions_helper.rb8
-rw-r--r--app/views/versions/index.html.erb4
-rw-r--r--test/functional/versions_controller_test.rb14
3 files changed, 24 insertions, 2 deletions
diff --git a/app/helpers/versions_helper.rb b/app/helpers/versions_helper.rb
index e6f886734..91dec8e91 100644
--- a/app/helpers/versions_helper.rb
+++ b/app/helpers/versions_helper.rb
@@ -19,6 +19,14 @@
module VersionsHelper
+ def version_anchor(version)
+ if @project == version.project
+ anchor version.name
+ else
+ anchor "#{version.project.try(:identifier)}-#{version.name}"
+ end
+ end
+
STATUS_BY_CRITERIAS = %w(tracker status priority author assigned_to category)
def render_issue_status_by(version, criteria)
diff --git a/app/views/versions/index.html.erb b/app/views/versions/index.html.erb
index b79bdb045..a4b0e3669 100644
--- a/app/views/versions/index.html.erb
+++ b/app/views/versions/index.html.erb
@@ -9,7 +9,7 @@
<% else %>
<div id="roadmap">
<% @versions.each do |version| %>
- <h3 class="version"><%= link_to_version version, :name => anchor(version.name) %></h3>
+ <h3 class="version"><%= link_to_version version, :name => version_anchor(version) %></h3>
<%= render :partial => 'versions/overview', :locals => {:version => version} %>
<%= render(:partial => "wiki/content", :locals => {:content => version.wiki_page.content}) if version.wiki_page %>
@@ -49,7 +49,7 @@
<h3><%= l(:label_version_plural) %></h3>
<% @versions.each do |version| %>
-<%= link_to format_version_name(version), "##{anchor(version.name)}" %><br />
+<%= link_to format_version_name(version), "##{version_anchor(version)}" %><br />
<% end %>
<% if @completed_versions.present? %>
<p>
diff --git a/test/functional/versions_controller_test.rb b/test/functional/versions_controller_test.rb
index 87fd966b6..c6906ca5b 100644
--- a/test/functional/versions_controller_test.rb
+++ b/test/functional/versions_controller_test.rb
@@ -80,6 +80,20 @@ class VersionsControllerTest < ActionController::TestCase
assert assigns(:versions).include?(@subproject_version), "Subproject version not found"
end
+ def test_index_should_prepend_shared_versions
+ get :index, :project_id => 1
+ assert_response :success
+
+ assert_select '#sidebar' do
+ assert_select 'a[href=?]', '#2.0', :text => '2.0'
+ assert_select 'a[href=?]', '#subproject1-2.0', :text => 'eCookbook Subproject 1 - 2.0'
+ end
+ assert_select '#content' do
+ assert_select 'a[name=?]', '2.0', :text => '2.0'
+ assert_select 'a[name=?]', 'subproject1-2.0', :text => 'eCookbook Subproject 1 - 2.0'
+ end
+ end
+
def test_show
get :show, :id => 2
assert_response :success