Show shared versions when editing issues from different projects with the context menu (#11345).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9961 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2012-07-08 13:19:46 +00:00
parent 7acd04fb87
commit 23a1ef543f
3 changed files with 15 additions and 3 deletions

View File

@ -48,6 +48,7 @@ class ContextMenusController < ApplicationController
@assignables = @projects.map(&:assignable_users).reduce(:&)
@trackers = @projects.map(&:trackers).reduce(:&)
end
@versions = @projects.map {|p| p.shared_versions.open}.reduce(:&)
@priorities = IssuePriority.active.reverse
@back = back_url

View File

@ -45,12 +45,11 @@
</li>
<% end %>
<% #TODO: allow editing versions when multiple projects %>
<% if @safe_attributes.include?('fixed_version_id') && @project && @project.shared_versions.open.any? -%>
<% if @safe_attributes.include?('fixed_version_id') && @versions.any? -%>
<li class="folder">
<a href="#" class="submenu"><%= l(:field_fixed_version) %></a>
<ul>
<% @project.shared_versions.open.sort.each do |v| -%>
<% @versions.sort.each do |v| -%>
<li><%= context_menu_link format_version_name(v), {:controller => 'issues', :action => 'bulk_update', :ids => @issues.collect(&:id), :issue => {'fixed_version_id' => v}, :back_url => @back}, :method => :post,
:selected => (@issue && v == @issue.fixed_version), :disabled => !@can[:update] %></li>
<% end -%>

View File

@ -223,6 +223,18 @@ class ContextMenusControllerTest < ActionController::TestCase
:class => '' }
end
def test_context_menu_should_propose_shared_versions_for_issues_from_different_projects
@request.session[:user_id] = 2
version = Version.create!(:name => 'Shared', :sharing => 'system', :project_id => 1)
get :issues, :ids => [1, 4]
assert_response :success
assert_template 'context_menu'
assert_include version, assigns(:versions)
assert_tag :tag => 'a', :content => 'eCookbook - Shared'
end
def test_context_menu_issue_visibility
get :issues, :ids => [1, 4]
assert_response :success