Defect #43174 ยป Fix-CookieOverflow-error-when-deleting-tracker.patch
app/controllers/trackers_controller.rb | ||
---|---|---|
88 | 88 | |
89 | 89 |
def destroy |
90 | 90 |
@tracker = Tracker.find(params[:id]) |
91 |
unless @tracker.issues.empty? |
|
91 |
if @tracker.issues.empty? |
|
92 |
@tracker.destroy |
|
93 |
redirect_to trackers_path |
|
94 |
else |
|
92 | 95 |
projects = Project.joins(:issues).where(issues: {tracker_id: @tracker.id}).sorted.distinct |
93 | 96 |
links = projects.map do |p| |
94 | 97 |
view_context.link_to(p, project_issues_path(p, set_filter: 1, tracker_id: @tracker.id, status_id: '*')) |
95 | 98 |
end.join(', ') |
96 |
flash[:error] = l(:error_can_not_delete_tracker_html, projects: links.html_safe) |
|
97 |
else
|
|
98 |
@tracker.destroy
|
|
99 |
flash.now[:error] = l(:error_can_not_delete_tracker_html, projects: links.html_safe)
|
|
100 |
@trackers = Tracker.sorted.preload(:default_status).to_a
|
|
101 |
render :index
|
|
99 | 102 |
end |
100 |
redirect_to trackers_path |
|
101 | 103 |
end |
102 | 104 | |
103 | 105 |
def fields |
test/functional/trackers_controller_test.rb | ||
---|---|---|
282 | 282 |
assert_no_difference 'Tracker.count' do |
283 | 283 |
delete :destroy, params: {id: tracker.id} |
284 | 284 |
end |
285 |
assert_redirected_to action: 'index'
|
|
285 |
assert_response :success
|
|
286 | 286 |
assert_match /The following projects have issues with this tracker:/, flash[:error] |
287 | 287 |
projects.each do |project| |
288 | 288 |
assert_match /#{project.name}/, flash[:error] |