From: Jan Provaznik <jprovazn(a)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'
--
1.7.2.3