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:
parent
b41c5c89d4
commit
b68dcfc930
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user