diff --git a/app/controllers/context_menus_controller.rb b/app/controllers/context_menus_controller.rb
index 442f85b..e437a18 100644
--- a/app/controllers/context_menus_controller.rb
+++ b/app/controllers/context_menus_controller.rb
@@ -6,6 +6,12 @@ class ContextMenusController < ApplicationController
if (@issues.size == 1)
@issue = @issues.first
@allowed_statuses = @issue.new_statuses_allowed_to(User.current)
+ else
+ @allowed_statuses = @issues.map do |i|
+ i.new_statuses_allowed_to(User.current)
+ end.inject do |memo,s|
+ memo & s
+ end
end
projects = @issues.collect(&:project).compact.uniq
@project = projects.first if projects.size == 1
diff --git a/app/views/context_menus/issues.html.erb b/app/views/context_menus/issues.html.erb
index dc11b5f..efd8cde 100644
--- a/app/views/context_menus/issues.html.erb
+++ b/app/views/context_menus/issues.html.erb
@@ -4,19 +4,22 @@
<% if !@issue.nil? -%>
<%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'edit', :id => @issue},
:class => 'icon-edit', :disabled => !@can[:edit] %>
+<% else %>
+ <%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id)},
+ :class => 'icon-edit', :disabled => !@can[:edit] %>
+<% end %>
+
+ <% unless @allowed_statuses.empty? %>
<% @statuses.each do |s| -%>
- - <%= context_menu_link s.name, {:controller => 'issues', :action => 'update', :id => @issue, :issue => {:status_id => s}, :back_url => @back}, :method => :put,
- :selected => (s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %>
+ - <%= context_menu_link s.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), :issue => {:status_id => s}, :back_url => @back}, :method => :post,
+ :selected => (@issue && s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %>
<% end -%>
-<% else %>
- <%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id)},
- :class => 'icon-edit', :disabled => !@can[:edit] %>
-<% end %>
+ <% end %>
<% unless @trackers.nil? %>
diff --git a/test/functional/context_menus_controller_test.rb b/test/functional/context_menus_controller_test.rb
index 7643508..0ebae69 100644
--- a/test/functional/context_menus_controller_test.rb
+++ b/test/functional/context_menus_controller_test.rb
@@ -12,7 +12,7 @@ class ContextMenusControllerTest < ActionController::TestCase
:attributes => { :href => '/issues/1/edit',
:class => 'icon-edit' }
assert_tag :tag => 'a', :content => 'Closed',
- :attributes => { :href => '/issues/1?issue%5Bstatus_id%5D=5',
+ :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bstatus_id%5D=5',
:class => '' }
assert_tag :tag => 'a', :content => 'Immediate',
:attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bpriority_id%5D=8',
@@ -59,6 +59,9 @@ class ContextMenusControllerTest < ActionController::TestCase
assert_tag :tag => 'a', :content => 'Edit',
:attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2',
:class => 'icon-edit' }
+ assert_tag :tag => 'a', :content => 'Closed',
+ :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2&issue%5Bstatus_id%5D=5',
+ :class => '' }
assert_tag :tag => 'a', :content => 'Immediate',
:attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2&issue%5Bpriority_id%5D=8',
:class => '' }