Autocomplete lists should be based on "q" parameter

If you don't filter server-side, the user sees the full list until
another character is entered.
This commit is contained in:
Eric Allen 2010-04-02 13:36:25 -04:00
parent 9ccd6d11d8
commit c79d1c964a
4 changed files with 6 additions and 5 deletions

View file

@ -124,8 +124,9 @@ class ApplicationController < ActionController::Base
end end
def for_autocomplete(coll) def for_autocomplete(coll, substr)
coll.map {|item| "#{item.name}|#{item.id}"}.join("\n") filtered = coll.find_all{|item| item.name.downcase.include? substr.downcase}
return filtered.map {|item| "#{item.name}|#{item.id}"}.join("\n")
end end
# Uses RedCloth to transform text using either Textile or Markdown Need to # Uses RedCloth to transform text using either Textile or Markdown Need to

View file

@ -22,7 +22,7 @@ class ContextsController < ApplicationController
format.rss &render_contexts_rss_feed format.rss &render_contexts_rss_feed
format.atom &render_contexts_atom_feed format.atom &render_contexts_atom_feed
format.text { render :action => 'index', :layout => false, :content_type => Mime::TEXT } format.text { render :action => 'index', :layout => false, :content_type => Mime::TEXT }
format.autocomplete { render :text => for_autocomplete(@active_contexts + @hidden_contexts)} format.autocomplete { render :text => for_autocomplete(@active_contexts + @hidden_contexts, params[:q])}
end end
end end

View file

@ -26,7 +26,7 @@ class ProjectsController < ApplicationController
format.rss &render_rss_feed format.rss &render_rss_feed
format.atom &render_atom_feed format.atom &render_atom_feed
format.text &render_text_feed format.text &render_text_feed
format.autocomplete { render :text => for_autocomplete(@projects) } format.autocomplete { render :text => for_autocomplete(@projects, params[:q]) }
end end
end end
end end

View file

@ -530,7 +530,7 @@ class TodosController < ApplicationController
def tags def tags
@tags = Tag.all @tags = Tag.all
respond_to do |format| respond_to do |format|
format.autocomplete { render :text => for_autocomplete(@tags) } format.autocomplete { render :text => for_autocomplete(@tags, params[:q]) }
end end
end end