1
0
mirror of https://github.com/meineerde/redmine.git synced 2025-12-26 10:21:14 +00:00

Issues autocomplete should response with content type json and not html (#30818).

Patch by Marius BALTEANU.


git-svn-id: http://svn.redmine.org/redmine/trunk@17881 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Go MAEDA 2019-02-18 14:56:19 +00:00
parent b41c5c89d4
commit b68dcfc930
2 changed files with 25 additions and 5 deletions

View File

@ -19,7 +19,7 @@ class AutoCompletesController < ApplicationController
before_action :find_project
def issues
@issues = []
issues = []
q = (params[:q] || params[:term]).to_s.strip
status = params[:status].to_s
issue_id = params[:issue_id].to_s
@ -32,13 +32,14 @@ class AutoCompletesController < ApplicationController
scope = scope.where.not(:id => issue_id.to_i)
end
if q.match(/\A#?(\d+)\z/)
@issues << scope.find_by_id($1.to_i)
issues << scope.find_by_id($1.to_i)
end
@issues += scope.like(q).order(:id => :desc).limit(10).to_a
@issues.compact!
issues += scope.like(q).order(:id => :desc).limit(10).to_a
issues.compact!
end
render :layout => false
render :json => format_issues_json(issues)
end
private
@ -50,4 +51,13 @@ class AutoCompletesController < ApplicationController
rescue ActiveRecord::RecordNotFound
render_404
end
def format_issues_json(issues)
issues.map {|issue| {
'id' => issue.id,
'label' => "#{issue.tracker} ##{issue.id}: #{issue.subject.to_s.truncate(60)}",
'value' => issue.id
}
}
end
end

View File

@ -138,4 +138,14 @@ class AutoCompletesControllerTest < Redmine::ControllerTest
assert_include "issue", response.body
assert_not_include "Bug #12: Closed issue on a locked version", response.body
end
def test_auto_complete_should_return_json_content_type_response
get :issues, :params => {
:project_id => 'subproject1',
:q => '#13'
}
assert_response :success
assert_include 'application/json', response.headers['Content-Type']
end
end