mirror of
https://github.com/meineerde/redmine.git
synced 2026-01-31 11:37:14 +00:00
Improve tracker deletion error message to display projects containing issues under the tracker (#12521).
Patch by Go MAEDA (user:maeda). git-svn-id: https://svn.redmine.org/redmine/trunk@23181 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
c54474eccc
commit
e5867ffc8d
@ -89,7 +89,11 @@ class TrackersController < ApplicationController
|
||||
def destroy
|
||||
@tracker = Tracker.find(params[:id])
|
||||
unless @tracker.issues.empty?
|
||||
flash[:error] = l(:error_can_not_delete_tracker)
|
||||
projects = Project.joins(:issues).where(issues: {tracker_id: @tracker.id}).sorted.distinct
|
||||
links = projects.map do |p|
|
||||
view_context.link_to(p, project_issues_path(p, set_filter: 1, tracker_id: @tracker.id))
|
||||
end.join(', ')
|
||||
flash[:error] = l(:error_can_not_delete_tracker_html, projects: links.html_safe)
|
||||
else
|
||||
@tracker.destroy
|
||||
end
|
||||
|
||||
@ -205,7 +205,7 @@ en:
|
||||
error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
|
||||
error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
|
||||
error_can_not_delete_custom_field: Unable to delete custom field
|
||||
error_can_not_delete_tracker: "This tracker contains issues and cannot be deleted."
|
||||
error_can_not_delete_tracker_html: "This tracker contains issues and cannot be deleted.<p>The following projects have issues with this tracker:<br>%{projects}</p>"
|
||||
error_can_not_remove_role: "This role is in use and cannot be deleted."
|
||||
error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version cannot be reopened'
|
||||
error_can_not_archive_project: This project cannot be archived
|
||||
|
||||
@ -274,11 +274,21 @@ class TrackersControllerTest < Redmine::ControllerTest
|
||||
end
|
||||
|
||||
def test_destroy_tracker_in_use
|
||||
assert_no_difference 'Tracker.count' do
|
||||
delete :destroy, :params => {:id => 1}
|
||||
tracker = Tracker.generate!(name: 'In use')
|
||||
projects = Array.new(2) do
|
||||
project = Project.generate!
|
||||
Issue.generate!(project: project, tracker: tracker)
|
||||
project
|
||||
end
|
||||
|
||||
assert_no_difference 'Tracker.count' do
|
||||
delete :destroy, params: {id: tracker.id}
|
||||
end
|
||||
assert_redirected_to action: 'index'
|
||||
assert_match /The following projects have issues with this tracker:/, flash[:error]
|
||||
projects.each do |project|
|
||||
assert_match /#{project.name}/, flash[:error]
|
||||
end
|
||||
assert_redirected_to :action => 'index'
|
||||
assert_not_nil flash[:error]
|
||||
end
|
||||
|
||||
def test_get_fields
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user