From: Jean-Philippe Lang Date: Thu, 9 Aug 2012 16:58:36 +0000 (+0000) Subject: Adds autocomplete to issue field on time logging form. X-Git-Tag: 2.1.0~150 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=f1650b8ff48aec72afd83e17b07eca2b0b7d9b55;p=redmine.git Adds autocomplete to issue field on time logging form. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10182 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/controllers/auto_completes_controller.rb b/app/controllers/auto_completes_controller.rb index 1bbcd33f8..f32adace4 100644 --- a/app/controllers/auto_completes_controller.rb +++ b/app/controllers/auto_completes_controller.rb @@ -22,7 +22,7 @@ class AutoCompletesController < ApplicationController @issues = [] q = (params[:q] || params[:term]).to_s.strip if q.present? - scope = (params[:scope] == "all" ? Issue : @project.issues).visible + scope = (params[:scope] == "all" || @project.nil? ? Issue : @project.issues).visible if q.match(/^\d+$/) @issues << scope.find_by_id(q.to_i) end @@ -35,7 +35,9 @@ class AutoCompletesController < ApplicationController private def find_project - @project = Project.find(params[:project_id]) + if params[:project_id].present? + @project = Project.find(params[:project_id]) + end rescue ActiveRecord::RecordNotFound render_404 end diff --git a/app/views/timelog/_form.html.erb b/app/views/timelog/_form.html.erb index 258de205f..8b1ed3a0a 100644 --- a/app/views/timelog/_form.html.erb +++ b/app/views/timelog/_form.html.erb @@ -19,3 +19,5 @@ <% end %> <%= call_hook(:view_timelog_edit_form_bottom, { :time_entry => @time_entry, :form => f }) %> + +<%= javascript_tag "observeAutocompleteField('time_entry_issue_id', '#{escape_javascript auto_complete_issues_path(:project_id => @project, :scope => (@project ? nil : 'all'))}')" %> diff --git a/test/functional/auto_completes_controller_test.rb b/test/functional/auto_completes_controller_test.rb index 554d52088..0be93b049 100644 --- a/test/functional/auto_completes_controller_test.rb +++ b/test/functional/auto_completes_controller_test.rb @@ -40,6 +40,13 @@ class AutoCompletesControllerTest < ActionController::TestCase assert assigns(:issues).include?(Issue.find(13)) end + def test_auto_complete_without_project_should_search_all_projects + get :issues, :q => '13' + assert_response :success + assert_not_nil assigns(:issues) + assert assigns(:issues).include?(Issue.find(13)) + end + def test_auto_complete_without_scope_all_should_not_search_other_projects get :issues, :project_id => 'ecookbook', :q => '13' assert_response :success