@@ -217,7 +217,7 class IssuesController < ApplicationController | |||
|
217 | 217 | end |
|
218 | 218 | call_hook(:controller_issues_edit_after_save, { :params => params, :issue => @issue, :time_entry => @time_entry, :journal => journal}) |
|
219 | 219 | respond_to do |format| |
|
220 |
format.html { redirect_t |
|
|
220 | format.html { redirect_back_or_default({:action => 'show', :id => @issue}) } | |
|
221 | 221 | format.xml { head :ok } |
|
222 | 222 | end |
|
223 | 223 | return |
@@ -293,7 +293,7 class IssuesController < ApplicationController | |||
|
293 | 293 | :total => @issues.size, |
|
294 | 294 | :ids => '#' + unsaved_issue_ids.join(', #')) |
|
295 | 295 | end |
|
296 |
redirect_t |
|
|
296 | redirect_back_or_default({:controller => 'issues', :action => 'index', :project_id => @project}) | |
|
297 | 297 | return |
|
298 | 298 | end |
|
299 | 299 | @available_statuses = Workflow.available_statuses(@project) |
@@ -8,7 +8,7 | |||
|
8 | 8 | <a href="#" class="submenu" onclick="return false;"><%= l(:field_status) %></a> |
|
9 | 9 | <ul> |
|
10 | 10 | <% @statuses.each do |s| -%> |
|
11 |
<li><%= context_menu_link s.name, {:controller => 'issues', :action => 'edit', :id => @issue, :issue => {:status_id => s}, :back_ |
|
|
11 | <li><%= context_menu_link s.name, {:controller => 'issues', :action => 'edit', :id => @issue, :issue => {:status_id => s}, :back_url => @back}, :method => :post, | |
|
12 | 12 | :selected => (s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %></li> |
|
13 | 13 | <% end -%> |
|
14 | 14 | </ul> |
@@ -23,7 +23,7 | |||
|
23 | 23 | <a href="#" class="submenu"><%= l(:field_tracker) %></a> |
|
24 | 24 | <ul> |
|
25 | 25 | <% @trackers.each do |t| -%> |
|
26 |
<li><%= context_menu_link t.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'tracker_id' => t, :back_ |
|
|
26 | <li><%= context_menu_link t.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'tracker_id' => t, :back_url => @back}, :method => :post, | |
|
27 | 27 | :selected => (@issue && t == @issue.tracker), :disabled => !@can[:edit] %></li> |
|
28 | 28 | <% end -%> |
|
29 | 29 | </ul> |
@@ -33,7 +33,7 | |||
|
33 | 33 | <a href="#" class="submenu"><%= l(:field_priority) %></a> |
|
34 | 34 | <ul> |
|
35 | 35 | <% @priorities.each do |p| -%> |
|
36 |
<li><%= context_menu_link p.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'priority_id' => p, :back_ |
|
|
36 | <li><%= context_menu_link p.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'priority_id' => p, :back_url => @back}, :method => :post, | |
|
37 | 37 | :selected => (@issue && p == @issue.priority), :disabled => !@can[:edit] %></li> |
|
38 | 38 | <% end -%> |
|
39 | 39 | </ul> |
@@ -43,10 +43,10 | |||
|
43 | 43 | <a href="#" class="submenu"><%= l(:field_fixed_version) %></a> |
|
44 | 44 | <ul> |
|
45 | 45 | <% @project.shared_versions.open.sort.each do |v| -%> |
|
46 |
<li><%= context_menu_link format_version_name(v), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => v, :back_ |
|
|
46 | <li><%= context_menu_link format_version_name(v), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => v, :back_url => @back}, :method => :post, | |
|
47 | 47 | :selected => (@issue && v == @issue.fixed_version), :disabled => !@can[:update] %></li> |
|
48 | 48 | <% end -%> |
|
49 |
<li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => 'none', :back_ |
|
|
49 | <li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => 'none', :back_url => @back}, :method => :post, | |
|
50 | 50 | :selected => (@issue && @issue.fixed_version.nil?), :disabled => !@can[:update] %></li> |
|
51 | 51 | </ul> |
|
52 | 52 | </li> |
@@ -56,10 +56,10 | |||
|
56 | 56 | <a href="#" class="submenu"><%= l(:field_assigned_to) %></a> |
|
57 | 57 | <ul> |
|
58 | 58 | <% @assignables.each do |u| -%> |
|
59 |
<li><%= context_menu_link u.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'assigned_to_id' => u, :back_ |
|
|
59 | <li><%= context_menu_link u.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'assigned_to_id' => u, :back_url => @back}, :method => :post, | |
|
60 | 60 | :selected => (@issue && u == @issue.assigned_to), :disabled => !@can[:update] %></li> |
|
61 | 61 | <% end -%> |
|
62 |
<li><%= context_menu_link l(:label_nobody), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'assigned_to_id' => 'none', :back_ |
|
|
62 | <li><%= context_menu_link l(:label_nobody), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'assigned_to_id' => 'none', :back_url => @back}, :method => :post, | |
|
63 | 63 | :selected => (@issue && @issue.assigned_to.nil?), :disabled => !@can[:update] %></li> |
|
64 | 64 | </ul> |
|
65 | 65 | </li> |
@@ -69,10 +69,10 | |||
|
69 | 69 | <a href="#" class="submenu"><%= l(:field_category) %></a> |
|
70 | 70 | <ul> |
|
71 | 71 | <% @project.issue_categories.each do |u| -%> |
|
72 |
<li><%= context_menu_link u.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'category_id' => u, :back_ |
|
|
72 | <li><%= context_menu_link u.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'category_id' => u, :back_url => @back}, :method => :post, | |
|
73 | 73 | :selected => (@issue && u == @issue.category), :disabled => !@can[:update] %></li> |
|
74 | 74 | <% end -%> |
|
75 |
<li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'category_id' => 'none', :back_ |
|
|
75 | <li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'category_id' => 'none', :back_url => @back}, :method => :post, | |
|
76 | 76 | :selected => (@issue && @issue.category.nil?), :disabled => !@can[:update] %></li> |
|
77 | 77 | </ul> |
|
78 | 78 | </li> |
@@ -82,7 +82,7 | |||
|
82 | 82 | <a href="#" class="submenu"><%= l(:field_done_ratio) %></a> |
|
83 | 83 | <ul> |
|
84 | 84 | <% (0..10).map{|x|x*10}.each do |p| -%> |
|
85 |
<li><%= context_menu_link "#{p}%", {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'done_ratio' => p, :back_ |
|
|
85 | <li><%= context_menu_link "#{p}%", {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'done_ratio' => p, :back_url => @back}, :method => :post, | |
|
86 | 86 | :selected => (@issue && p == @issue.done_ratio), :disabled => !@can[:edit] %></li> |
|
87 | 87 | <% end -%> |
|
88 | 88 | </ul> |
@@ -947,6 +947,36 class IssuesControllerTest < ActionController::TestCase | |||
|
947 | 947 | assert_equal 4, issue.fixed_version_id |
|
948 | 948 | assert_not_equal issue.project_id, issue.fixed_version.project_id |
|
949 | 949 | end |
|
950 | ||
|
951 | def test_post_edit_should_redirect_back_using_the_back_url_parameter | |
|
952 | issue = Issue.find(2) | |
|
953 | @request.session[:user_id] = 2 | |
|
954 | ||
|
955 | post :edit, | |
|
956 | :id => issue.id, | |
|
957 | :issue => { | |
|
958 | :fixed_version_id => 4 | |
|
959 | }, | |
|
960 | :back_url => '/issues' | |
|
961 | ||
|
962 | assert_response :redirect | |
|
963 | assert_redirected_to '/issues' | |
|
964 | end | |
|
965 | ||
|
966 | def test_post_edit_should_not_redirect_back_using_the_back_url_parameter_off_the_host | |
|
967 | issue = Issue.find(2) | |
|
968 | @request.session[:user_id] = 2 | |
|
969 | ||
|
970 | post :edit, | |
|
971 | :id => issue.id, | |
|
972 | :issue => { | |
|
973 | :fixed_version_id => 4 | |
|
974 | }, | |
|
975 | :back_url => 'http://google.com' | |
|
976 | ||
|
977 | assert_response :redirect | |
|
978 | assert_redirected_to :controller => 'issues', :action => 'show', :id => issue.id | |
|
979 | end | |
|
950 | 980 | |
|
951 | 981 | def test_get_bulk_edit |
|
952 | 982 | @request.session[:user_id] = 2 |
@@ -1053,6 +1083,22 class IssuesControllerTest < ActionController::TestCase | |||
|
1053 | 1083 | end |
|
1054 | 1084 | end |
|
1055 | 1085 | |
|
1086 | def test_post_bulk_edit_should_redirect_back_using_the_back_url_parameter | |
|
1087 | @request.session[:user_id] = 2 | |
|
1088 | post :bulk_edit, :ids => [1,2], :back_url => '/issues' | |
|
1089 | ||
|
1090 | assert_response :redirect | |
|
1091 | assert_redirected_to '/issues' | |
|
1092 | end | |
|
1093 | ||
|
1094 | def test_post_bulk_edit_should_not_redirect_back_using_the_back_url_parameter_off_the_host | |
|
1095 | @request.session[:user_id] = 2 | |
|
1096 | post :bulk_edit, :ids => [1,2], :back_url => 'http://google.com' | |
|
1097 | ||
|
1098 | assert_response :redirect | |
|
1099 | assert_redirected_to :controller => 'issues', :action => 'index', :project_id => Project.find(1).identifier | |
|
1100 | end | |
|
1101 | ||
|
1056 | 1102 | def test_move_routing |
|
1057 | 1103 | assert_routing( |
|
1058 | 1104 | {:method => :get, :path => '/issues/1/move'}, |
General Comments 0
You need to be logged in to leave comments.
Login now