Browse Source

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
tags/4.1.0
Go MAEDA 5 years ago
parent
commit
b68dcfc930

+ 15
- 5
app/controllers/auto_completes_controller.rb 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

+ 10
- 0
test/functional/auto_completes_controller_test.rb 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

Loading…
Cancel
Save