##// END OF EJS Templates
Cleaned up the IssueController redirects to use the back_url like the other actions....
Eric Davis -
r3201:1827d609a1b4
parent child
Show More
@@ -217,7 +217,7 class IssuesController < ApplicationController
217 end
217 end
218 call_hook(:controller_issues_edit_after_save, { :params => params, :issue => @issue, :time_entry => @time_entry, :journal => journal})
218 call_hook(:controller_issues_edit_after_save, { :params => params, :issue => @issue, :time_entry => @time_entry, :journal => journal})
219 respond_to do |format|
219 respond_to do |format|
220 format.html { redirect_to(params[:back_to] || {:action => 'show', :id => @issue}) }
220 format.html { redirect_back_or_default({:action => 'show', :id => @issue}) }
221 format.xml { head :ok }
221 format.xml { head :ok }
222 end
222 end
223 return
223 return
@@ -293,7 +293,7 class IssuesController < ApplicationController
293 :total => @issues.size,
293 :total => @issues.size,
294 :ids => '#' + unsaved_issue_ids.join(', #'))
294 :ids => '#' + unsaved_issue_ids.join(', #'))
295 end
295 end
296 redirect_to(params[:back_to] || {:controller => 'issues', :action => 'index', :project_id => @project})
296 redirect_back_or_default({:controller => 'issues', :action => 'index', :project_id => @project})
297 return
297 return
298 end
298 end
299 @available_statuses = Workflow.available_statuses(@project)
299 @available_statuses = Workflow.available_statuses(@project)
@@ -8,7 +8,7
8 <a href="#" class="submenu" onclick="return false;"><%= l(:field_status) %></a>
8 <a href="#" class="submenu" onclick="return false;"><%= l(:field_status) %></a>
9 <ul>
9 <ul>
10 <% @statuses.each do |s| -%>
10 <% @statuses.each do |s| -%>
11 <li><%= context_menu_link s.name, {:controller => 'issues', :action => 'edit', :id => @issue, :issue => {:status_id => s}, :back_to => @back}, :method => :post,
11 <li><%= context_menu_link s.name, {:controller => 'issues', :action => 'edit', :id => @issue, :issue => {:status_id => s}, :back_url => @back}, :method => :post,
12 :selected => (s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %></li>
12 :selected => (s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %></li>
13 <% end -%>
13 <% end -%>
14 </ul>
14 </ul>
@@ -23,7 +23,7
23 <a href="#" class="submenu"><%= l(:field_tracker) %></a>
23 <a href="#" class="submenu"><%= l(:field_tracker) %></a>
24 <ul>
24 <ul>
25 <% @trackers.each do |t| -%>
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_to => @back}, :method => :post,
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 :selected => (@issue && t == @issue.tracker), :disabled => !@can[:edit] %></li>
27 :selected => (@issue && t == @issue.tracker), :disabled => !@can[:edit] %></li>
28 <% end -%>
28 <% end -%>
29 </ul>
29 </ul>
@@ -33,7 +33,7
33 <a href="#" class="submenu"><%= l(:field_priority) %></a>
33 <a href="#" class="submenu"><%= l(:field_priority) %></a>
34 <ul>
34 <ul>
35 <% @priorities.each do |p| -%>
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_to => @back}, :method => :post,
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 :selected => (@issue && p == @issue.priority), :disabled => !@can[:edit] %></li>
37 :selected => (@issue && p == @issue.priority), :disabled => !@can[:edit] %></li>
38 <% end -%>
38 <% end -%>
39 </ul>
39 </ul>
@@ -43,10 +43,10
43 <a href="#" class="submenu"><%= l(:field_fixed_version) %></a>
43 <a href="#" class="submenu"><%= l(:field_fixed_version) %></a>
44 <ul>
44 <ul>
45 <% @project.shared_versions.open.sort.each do |v| -%>
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_to => @back}, :method => :post,
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 :selected => (@issue && v == @issue.fixed_version), :disabled => !@can[:update] %></li>
47 :selected => (@issue && v == @issue.fixed_version), :disabled => !@can[:update] %></li>
48 <% end -%>
48 <% end -%>
49 <li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => 'none', :back_to => @back}, :method => :post,
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 :selected => (@issue && @issue.fixed_version.nil?), :disabled => !@can[:update] %></li>
50 :selected => (@issue && @issue.fixed_version.nil?), :disabled => !@can[:update] %></li>
51 </ul>
51 </ul>
52 </li>
52 </li>
@@ -56,10 +56,10
56 <a href="#" class="submenu"><%= l(:field_assigned_to) %></a>
56 <a href="#" class="submenu"><%= l(:field_assigned_to) %></a>
57 <ul>
57 <ul>
58 <% @assignables.each do |u| -%>
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_to => @back}, :method => :post,
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 :selected => (@issue && u == @issue.assigned_to), :disabled => !@can[:update] %></li>
60 :selected => (@issue && u == @issue.assigned_to), :disabled => !@can[:update] %></li>
61 <% end -%>
61 <% end -%>
62 <li><%= context_menu_link l(:label_nobody), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'assigned_to_id' => 'none', :back_to => @back}, :method => :post,
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 :selected => (@issue && @issue.assigned_to.nil?), :disabled => !@can[:update] %></li>
63 :selected => (@issue && @issue.assigned_to.nil?), :disabled => !@can[:update] %></li>
64 </ul>
64 </ul>
65 </li>
65 </li>
@@ -69,10 +69,10
69 <a href="#" class="submenu"><%= l(:field_category) %></a>
69 <a href="#" class="submenu"><%= l(:field_category) %></a>
70 <ul>
70 <ul>
71 <% @project.issue_categories.each do |u| -%>
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_to => @back}, :method => :post,
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 :selected => (@issue && u == @issue.category), :disabled => !@can[:update] %></li>
73 :selected => (@issue && u == @issue.category), :disabled => !@can[:update] %></li>
74 <% end -%>
74 <% end -%>
75 <li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'category_id' => 'none', :back_to => @back}, :method => :post,
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 :selected => (@issue && @issue.category.nil?), :disabled => !@can[:update] %></li>
76 :selected => (@issue && @issue.category.nil?), :disabled => !@can[:update] %></li>
77 </ul>
77 </ul>
78 </li>
78 </li>
@@ -82,7 +82,7
82 <a href="#" class="submenu"><%= l(:field_done_ratio) %></a>
82 <a href="#" class="submenu"><%= l(:field_done_ratio) %></a>
83 <ul>
83 <ul>
84 <% (0..10).map{|x|x*10}.each do |p| -%>
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_to => @back}, :method => :post,
85 <li><%= context_menu_link "#{p}%", {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'done_ratio' => p, :back_url => @back}, :method => :post,
86 :selected => (@issue && p == @issue.done_ratio), :disabled => !@can[:edit] %></li>
86 :selected => (@issue && p == @issue.done_ratio), :disabled => !@can[:edit] %></li>
87 <% end -%>
87 <% end -%>
88 </ul>
88 </ul>
@@ -947,6 +947,36 class IssuesControllerTest < ActionController::TestCase
947 assert_equal 4, issue.fixed_version_id
947 assert_equal 4, issue.fixed_version_id
948 assert_not_equal issue.project_id, issue.fixed_version.project_id
948 assert_not_equal issue.project_id, issue.fixed_version.project_id
949 end
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 def test_get_bulk_edit
981 def test_get_bulk_edit
952 @request.session[:user_id] = 2
982 @request.session[:user_id] = 2
@@ -1053,6 +1083,22 class IssuesControllerTest < ActionController::TestCase
1053 end
1083 end
1054 end
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 def test_move_routing
1102 def test_move_routing
1057 assert_routing(
1103 assert_routing(
1058 {:method => :get, :path => '/issues/1/move'},
1104 {:method => :get, :path => '/issues/1/move'},
General Comments 0
You need to be logged in to leave comments. Login now