From: Jan Provaznik jprovazn@redhat.com
--- src/app/views/templates/content_selection.haml | 4 ++-- src/features/template.feature | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/app/views/templates/content_selection.haml b/src/app/views/templates/content_selection.haml index 689c33d..af02da1 100644 --- a/src/app/views/templates/content_selection.haml +++ b/src/app/views/templates/content_selection.haml @@ -36,8 +36,8 @@ <input type="hidden" id="selected_package_#{p[:name]}" name="selected_packages[]" value="#{p[:name]}" /> %fieldset.clearfix .search.grid_4.alpha - %input{:type => "search", :placeholder => "Search for package", :name => 'package_search', :value => params[:package_search]} - %button.action + %input{:type => "search", :placeholder => "Search for package", :name => 'package_search', :value => params[:package_search], :id => 'package_search'} + %button.action{:id => 'package_search_button'} .grid_8 %a.grid_4.omega Advanced Search
diff --git a/src/features/template.feature b/src/features/template.feature index 73de5ca..776500c 100644 --- a/src/features/template.feature +++ b/src/features/template.feature @@ -42,3 +42,10 @@ Feature: Manage Templates Then I should be on the templates page And I should see "Template saved" And I should see "mocktemplate" + + Scenario: Search software with empty string + Given I am on the new template page + When I press "Add Software" + And I fill in "package_search" with "" + And I press "package_search_button" + Then I should see "Search string is empty"
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'
deltacloud-devel@lists.fedorahosted.org