diff --git a/app/controllers/packages_controller.rb b/app/controllers/packages_controller.rb index 9d379db..ee3ffac 100644 --- a/app/controllers/packages_controller.rb +++ b/app/controllers/packages_controller.rb @@ -1,13 +1,19 @@ class PackagesController < ApplicationController def index + @packages = Package + + if params[:with_screenshots]=='yes' + @packages = @packages.joins(:screenshots).where('screenshots.approved = ?', true) + end + if params[:search] query = '%'+params[:search]+'%' # TODO: Index on lower(…) is missing. Does not scale. # TODO: Consider using a serious search engine like Xapian or ElasticSearch. - @packages = Package.where("lower(description) like lower(?) or lower(name) like lower(?)", query, query).order('name').first(20) - else - @packages = Package.order('name').first(20) + @packages = @packages.where("lower(description) like lower(?) or lower(name) like lower(?)", query, query) end + + @packages = @packages.order('name').limit(20) end def with_screenshots diff --git a/app/views/packages/_packages_search_results.html.erb b/app/views/packages/_packages_search_results.html.erb index 4f4fa0f..c104869 100644 --- a/app/views/packages/_packages_search_results.html.erb +++ b/app/views/packages/_packages_search_results.html.erb @@ -1,6 +1,7 @@ <%# Show search results %> -<% if @packages %> +<% if @packages.count>0 %> +

Class=<%= @packages.class %>