@@ -6,6 +6,12 class ContextMenusController < ApplicationController | |||||
6 | if (@issues.size == 1) |
|
6 | if (@issues.size == 1) | |
7 | @issue = @issues.first |
|
7 | @issue = @issues.first | |
8 | @allowed_statuses = @issue.new_statuses_allowed_to(User.current) |
|
8 | @allowed_statuses = @issue.new_statuses_allowed_to(User.current) | |
|
9 | else | |||
|
10 | @allowed_statuses = @issues.map do |i| | |||
|
11 | i.new_statuses_allowed_to(User.current) | |||
|
12 | end.inject do |memo,s| | |||
|
13 | memo & s | |||
|
14 | end | |||
9 | end |
|
15 | end | |
10 | projects = @issues.collect(&:project).compact.uniq |
|
16 | projects = @issues.collect(&:project).compact.uniq | |
11 | @project = projects.first if projects.size == 1 |
|
17 | @project = projects.first if projects.size == 1 |
@@ -4,19 +4,22 | |||||
4 | <% if !@issue.nil? -%> |
|
4 | <% if !@issue.nil? -%> | |
5 | <li><%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'edit', :id => @issue}, |
|
5 | <li><%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'edit', :id => @issue}, | |
6 | :class => 'icon-edit', :disabled => !@can[:edit] %></li> |
|
6 | :class => 'icon-edit', :disabled => !@can[:edit] %></li> | |
|
7 | <% else %> | |||
|
8 | <li><%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id)}, | |||
|
9 | :class => 'icon-edit', :disabled => !@can[:edit] %></li> | |||
|
10 | <% end %> | |||
|
11 | ||||
|
12 | <% unless @allowed_statuses.empty? %> | |||
7 | <li class="folder"> |
|
13 | <li class="folder"> | |
8 | <a href="#" class="submenu" onclick="return false;"><%= l(:field_status) %></a> |
|
14 | <a href="#" class="submenu" onclick="return false;"><%= l(:field_status) %></a> | |
9 | <ul> |
|
15 | <ul> | |
10 | <% @statuses.each do |s| -%> |
|
16 | <% @statuses.each do |s| -%> | |
11 |
<li><%= context_menu_link s.name, {:controller => 'issues', :action => ' |
|
17 | <li><%= context_menu_link s.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), :issue => {:status_id => s}, :back_url => @back}, :method => :post, | |
12 | :selected => (s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %></li> |
|
18 | :selected => (@issue && s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %></li> | |
13 | <% end -%> |
|
19 | <% end -%> | |
14 | </ul> |
|
20 | </ul> | |
15 | </li> |
|
21 | </li> | |
16 |
|
|
22 | <% end %> | |
17 | <li><%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id)}, |
|
|||
18 | :class => 'icon-edit', :disabled => !@can[:edit] %></li> |
|
|||
19 | <% end %> |
|
|||
20 |
|
23 | |||
21 | <% unless @trackers.nil? %> |
|
24 | <% unless @trackers.nil? %> | |
22 | <li class="folder"> |
|
25 | <li class="folder"> |
@@ -12,7 +12,7 class ContextMenusControllerTest < ActionController::TestCase | |||||
12 | :attributes => { :href => '/issues/1/edit', |
|
12 | :attributes => { :href => '/issues/1/edit', | |
13 | :class => 'icon-edit' } |
|
13 | :class => 'icon-edit' } | |
14 | assert_tag :tag => 'a', :content => 'Closed', |
|
14 | assert_tag :tag => 'a', :content => 'Closed', | |
15 |
:attributes => { :href => '/issues/ |
|
15 | :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bstatus_id%5D=5', | |
16 | :class => '' } |
|
16 | :class => '' } | |
17 | assert_tag :tag => 'a', :content => 'Immediate', |
|
17 | assert_tag :tag => 'a', :content => 'Immediate', | |
18 | :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bpriority_id%5D=8', |
|
18 | :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bpriority_id%5D=8', | |
@@ -59,6 +59,9 class ContextMenusControllerTest < ActionController::TestCase | |||||
59 | assert_tag :tag => 'a', :content => 'Edit', |
|
59 | assert_tag :tag => 'a', :content => 'Edit', | |
60 | :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2', |
|
60 | :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2', | |
61 | :class => 'icon-edit' } |
|
61 | :class => 'icon-edit' } | |
|
62 | assert_tag :tag => 'a', :content => 'Closed', | |||
|
63 | :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2&issue%5Bstatus_id%5D=5', | |||
|
64 | :class => '' } | |||
62 | assert_tag :tag => 'a', :content => 'Immediate', |
|
65 | assert_tag :tag => 'a', :content => 'Immediate', | |
63 | :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2&issue%5Bpriority_id%5D=8', |
|
66 | :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&ids%5B%5D=2&issue%5Bpriority_id%5D=8', | |
64 | :class => '' } |
|
67 | :class => '' } |
General Comments 0
You need to be logged in to leave comments.
Login now