Project

General

Profile

Defect #43174 ยป Fix-CookieOverflow-error-when-deleting-tracker.patch

Go MAEDA, 2025-08-30 09:06

View differences:

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]
    (1-1/1)