Commit 28581c8d authored by maeda's avatar maeda

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

Patch by Marius BALTEANU.


git-svn-id: https://svn.redmine.org/redmine/trunk@17881 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent de2cac25
......@@ -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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment