diff --git a/app/views/issues/new.js.erb b/app/views/issues/new.js.erb index a7e8cf88b..163c723c5 100644 --- a/app/views/issues/new.js.erb +++ b/app/views/issues/new.js.erb @@ -4,7 +4,10 @@ replaceIssueFormWith('<%= escape_javascript(render :partial => 'form') %>'); $("#watchers_form_container").html( '<%= escape_javascript(render :partial => 'issues/watchers_form') %>'); <% when "issue_category_id" %> - $('#issue_assigned_to_id').find('option').first().html( - '<%= escape_javascript( - @issue.category.try(:assigned_to).try(:name)).presence || ' '.html_safe %>'); + $('#issue_assigned_to_id').find('option').first() + // Browsers prefer option[label] over inner text, so remove the blank label. + .removeAttr('label') + .html( + '<%= escape_javascript( + @issue.category.try(:assigned_to).try(:name)).presence || ' '.html_safe %>'); <% end %> diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index a17478b7e..c3dbdc082 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -4242,6 +4242,27 @@ class IssuesControllerTest < Redmine::ControllerTest end end + def test_update_form_for_new_issue_should_show_category_default_assignee_when_changing_category + @request.session[:user_id] = 2 + + post( + :new, + :params => { + :project_id => 1, + :issue => { + :category_id => 1 + }, + :form_update_triggered_by => 'issue_category_id' + }, + :xhr => true + ) + assert_response :success + + # Browsers prefer option[label] over inner text, so the blank label must be removed. + assert_includes @response.body, ".removeAttr('label')" + assert_includes @response.body, "John Smith" + end + def test_post_create @request.session[:user_id] = 2 assert_difference 'Issue.count' do