@@ -202,7 +202,7 class IssuesController < ApplicationController | |||
|
202 | 202 | flash[:notice] = l(:notice_successful_update) |
|
203 | 203 | end |
|
204 | 204 | call_hook(:controller_issues_edit_after_save, { :params => params, :issue => @issue, :time_entry => @time_entry, :journal => journal}) |
|
205 |
redirect_t |
|
|
205 | redirect_back_or_default({:action => 'show', :id => @issue}) | |
|
206 | 206 | end |
|
207 | 207 | end |
|
208 | 208 | rescue ActiveRecord::StaleObjectError |
@@ -269,7 +269,7 class IssuesController < ApplicationController | |||
|
269 | 269 | :total => @issues.size, |
|
270 | 270 | :ids => '#' + unsaved_issue_ids.join(', #')) |
|
271 | 271 | end |
|
272 |
redirect_t |
|
|
272 | redirect_back_or_default({:controller => 'issues', :action => 'index', :project_id => @project}) | |
|
273 | 273 | return |
|
274 | 274 | end |
|
275 | 275 | @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> |
@@ -940,6 +940,36 class IssuesControllerTest < ActionController::TestCase | |||
|
940 | 940 | assert_equal 4, issue.fixed_version_id |
|
941 | 941 | assert_not_equal issue.project_id, issue.fixed_version.project_id |
|
942 | 942 | end |
|
943 | ||
|
944 | def test_post_edit_should_redirect_back_using_the_back_url_parameter | |
|
945 | issue = Issue.find(2) | |
|
946 | @request.session[:user_id] = 2 | |
|
947 | ||
|
948 | post :edit, | |
|
949 | :id => issue.id, | |
|
950 | :issue => { | |
|
951 | :fixed_version_id => 4 | |
|
952 | }, | |
|
953 | :back_url => '/issues' | |
|
954 | ||
|
955 | assert_response :redirect | |
|
956 | assert_redirected_to '/issues' | |
|
957 | end | |
|
958 | ||
|
959 | def test_post_edit_should_not_redirect_back_using_the_back_url_parameter_off_the_host | |
|
960 | issue = Issue.find(2) | |
|
961 | @request.session[:user_id] = 2 | |
|
962 | ||
|
963 | post :edit, | |
|
964 | :id => issue.id, | |
|
965 | :issue => { | |
|
966 | :fixed_version_id => 4 | |
|
967 | }, | |
|
968 | :back_url => 'http://google.com' | |
|
969 | ||
|
970 | assert_response :redirect | |
|
971 | assert_redirected_to :controller => 'issues', :action => 'show', :id => issue.id | |
|
972 | end | |
|
943 | 973 | |
|
944 | 974 | def test_get_bulk_edit |
|
945 | 975 | @request.session[:user_id] = 2 |
@@ -1046,6 +1076,22 class IssuesControllerTest < ActionController::TestCase | |||
|
1046 | 1076 | end |
|
1047 | 1077 | end |
|
1048 | 1078 | |
|
1079 | def test_post_bulk_edit_should_redirect_back_using_the_back_url_parameter | |
|
1080 | @request.session[:user_id] = 2 | |
|
1081 | post :bulk_edit, :ids => [1,2], :back_url => '/issues' | |
|
1082 | ||
|
1083 | assert_response :redirect | |
|
1084 | assert_redirected_to '/issues' | |
|
1085 | end | |
|
1086 | ||
|
1087 | def test_post_bulk_edit_should_not_redirect_back_using_the_back_url_parameter_off_the_host | |
|
1088 | @request.session[:user_id] = 2 | |
|
1089 | post :bulk_edit, :ids => [1,2], :back_url => 'http://google.com' | |
|
1090 | ||
|
1091 | assert_response :redirect | |
|
1092 | assert_redirected_to :controller => 'issues', :action => 'index', :project_id => Project.find(1).identifier | |
|
1093 | end | |
|
1094 | ||
|
1049 | 1095 | def test_move_routing |
|
1050 | 1096 | assert_routing( |
|
1051 | 1097 | {:method => :get, :path => '/issues/1/move'}, |
General Comments 0
You need to be logged in to leave comments.
Login now