diff options
author | Eric Davis <edavis@littlestreamsoftware.com> | 2010-08-17 15:03:58 +0000 |
---|---|---|
committer | Eric Davis <edavis@littlestreamsoftware.com> | 2010-08-17 15:03:58 +0000 |
commit | 3eff27344b0bef7703ba248d0a2312bfca95c182 (patch) | |
tree | eefbe2247a166db315bf278b75300a959df00936 /app | |
parent | e63acb70ca82d0c62476c92bbe815330ee01ad93 (diff) | |
download | redmine-3eff27344b0bef7703ba248d0a2312bfca95c182.tar.gz redmine-3eff27344b0bef7703ba248d0a2312bfca95c182.zip |
Refactor: move IssuesController#auto_complete to a new controller. #4382
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3945 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/auto_completes_controller.rb | 25 | ||||
-rw-r--r-- | app/controllers/issues_controller.rb | 14 | ||||
-rw-r--r-- | app/views/auto_completes/issues.html.erb (renamed from app/views/issues/auto_complete.html.erb) | 0 | ||||
-rw-r--r-- | app/views/issues/_form.rhtml | 5 |
4 files changed, 27 insertions, 17 deletions
diff --git a/app/controllers/auto_completes_controller.rb b/app/controllers/auto_completes_controller.rb new file mode 100644 index 000000000..1438106f6 --- /dev/null +++ b/app/controllers/auto_completes_controller.rb @@ -0,0 +1,25 @@ +class AutoCompletesController < ApplicationController + before_filter :find_project + + def issues + @issues = [] + q = params[:q].to_s + if q.match(/^\d+$/) + @issues << @project.issues.visible.find_by_id(q.to_i) + end + unless q.blank? + @issues += @project.issues.visible.find(:all, :conditions => ["LOWER(#{Issue.table_name}.subject) LIKE ?", "%#{q.downcase}%"], :limit => 10) + end + render :layout => false + end + + private + + def find_project + project_id = (params[:issue] && params[:issue][:project_id]) || params[:project_id] + @project = Project.find(project_id) + rescue ActiveRecord::RecordNotFound + render_404 + end + +end diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index eaa6dbc35..4981f43ee 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -21,7 +21,7 @@ class IssuesController < ApplicationController before_filter :find_issue, :only => [:show, :edit, :update] before_filter :find_issues, :only => [:bulk_edit, :move, :perform_move, :destroy] - before_filter :find_project, :only => [:new, :create, :update_form, :preview, :auto_complete] + before_filter :find_project, :only => [:new, :create, :update_form, :preview] before_filter :authorize, :except => [:index, :changes, :preview, :context_menu] before_filter :find_optional_project, :only => [:index, :changes] before_filter :check_for_default_issue_status, :only => [:new, :create] @@ -316,18 +316,6 @@ class IssuesController < ApplicationController render :layout => false end - def auto_complete - @issues = [] - q = params[:q].to_s - if q.match(/^\d+$/) - @issues << @project.issues.visible.find_by_id(q.to_i) - end - unless q.blank? - @issues += @project.issues.visible.find(:all, :conditions => ["LOWER(#{Issue.table_name}.subject) LIKE ?", "%#{q.downcase}%"], :limit => 10) - end - render :layout => false - end - private def find_issue @issue = Issue.find(params[:id], :include => [:project, :tracker, :status, :author, :priority, :category]) diff --git a/app/views/issues/auto_complete.html.erb b/app/views/auto_completes/issues.html.erb index b130159eb..b130159eb 100644 --- a/app/views/issues/auto_complete.html.erb +++ b/app/views/auto_completes/issues.html.erb diff --git a/app/views/issues/_form.rhtml b/app/views/issues/_form.rhtml index 1e3beaf85..ccb7a55a3 100644 --- a/app/views/issues/_form.rhtml +++ b/app/views/issues/_form.rhtml @@ -9,10 +9,7 @@ <% unless (@issue.new_record? && @issue.parent_issue_id.nil?) || !User.current.allowed_to?(:manage_subtasks, @project) %> <p><%= f.text_field :parent_issue_id, :size => 10 %></p> <div id="parent_issue_candidates" class="autocomplete"></div> -<%= javascript_tag "observeParentIssueField('#{url_for(:controller => :issues, - :action => :auto_complete, - :id => @issue, - :project_id => @project) }')" %> +<%= javascript_tag "observeParentIssueField('#{auto_complete_issues_path(:id => @issue, :project_id => @project) }')" %> <% end %> <p><%= f.text_area :description, |