From: Jan Provaznik jprovazn@redhat.com
https://bugzilla.redhat.com/show_bug.cgi?id=649536
Fixed error when user searches packages with empty string. --- src/app/controllers/templates_controller.rb | 13 ++++++---- src/app/views/templates/_searched_packages.haml | 29 ++++++++++++---------- 2 files changed, 24 insertions(+), 18 deletions(-)
diff --git a/src/app/controllers/templates_controller.rb b/src/app/controllers/templates_controller.rb index 8261eab..c6187e4 100644 --- a/src/app/controllers/templates_controller.rb +++ b/src/app/controllers/templates_controller.rb @@ -76,9 +76,12 @@ class TemplatesController < ApplicationController @metagroup = params['show_metagroup'] content_selection
- elsif not params[:package_search].blank? + elsif @package_search = params[:package_search] content_selection
+ else + raise "unknown action" + end end
@@ -129,12 +132,12 @@ class TemplatesController < ApplicationController @categories = @repository_manager.categories(params[:tpl] ? params[:tpl][:platform] : nil) @metagroups = @repository_manager.metagroups
- if not params[:package_search].blank? + if @package_search @page = get_page @cached_packages = params[:cached_packages].to_a - @searched_packages = @repository_manager.search_package(params[:package_search], - params[:repository] || @tpl.platform).paginate(:page => @page, - :per_page => 60) + @searched_packages = @package_search.empty? ? [] : @repository_manager.search_package(@package_search, + params[:repository] || @tpl.platform).paginate(:page => @page, + :per_page => 60) elsif not @metagroup.blank? if @metagroup == 'Collections' # TODO: if we remember selected groups, this could be done much more simply diff --git a/src/app/views/templates/_searched_packages.haml b/src/app/views/templates/_searched_packages.haml index 6533f1a..c3ae336 100644 --- a/src/app/views/templates/_searched_packages.haml +++ b/src/app/views/templates/_searched_packages.haml @@ -26,18 +26,21 @@ - @cached_packages.uniq.each do |pkg| = hidden_field_tag 'cached_packages[]', pkg
-%h4 - = "Search Results for '#{params[:package_search]}'" -%ul.searchedpackages - - @searched_packages.sort.each do |pkg| - %li - - selected = (@packages.to_a.find {|p| p[:name] == pkg} or @cached_packages.include?(pkg)) - - disabled = params[:selected_packages].to_a.include?(pkg) - = check_box_tag 'packages[]', pkg, selected, {:disabled => disabled, :id => "pkg_#{pkg}"} - = label_tag "pkg_#{pkg}", pkg -.pageinfo - = page_entries_info @searched_packages, :entry_name => 'package' -= will_paginate @searched_packages, :params => {:package_search => params[:package_search]}, :renderer => TemplatesHelper::ButtonPaginationRenderer.new, :previous_label => 'Previous', :next_label => 'Next' +- if @package_search.empty? + Search string is empty. +-else + %h4 + = "Search Results for '#{params[:package_search]}'" + %ul.searchedpackages + - @searched_packages.sort.each do |pkg| + %li + - selected = (@packages.to_a.find {|p| p[:name] == pkg} or @cached_packages.include?(pkg)) + - disabled = params[:selected_packages].to_a.include?(pkg) + = check_box_tag 'packages[]', pkg, selected, {:disabled => disabled, :id => "pkg_#{pkg}"} + = label_tag "pkg_#{pkg}", pkg + .pageinfo + = page_entries_info @searched_packages, :entry_name => 'package' + = will_paginate @searched_packages, :params => {:package_search => params[:package_search]}, :renderer => TemplatesHelper::ButtonPaginationRenderer.new, :previous_label => 'Previous', :next_label => 'Next'
-= render :partial => 'addbuttons' + = render :partial => 'addbuttons'