1 class SearchController < ApplicationController
4 @exclude_debuginfo = true
5 @exclude_filter = 'home:'
6 if params[:baseproject]
7 @baseproject = params[:baseproject]
15 DownloadHistory.create :query => params[:query], :base => params[:base],
16 :file => params[:file]
17 redirect_to "http://download.opensuse.org/repositories/" + params[:file]
24 @baseproject = params[:baseproject]
25 @current_page = params[:p].to_i
26 @current_page = 1 if @current_page == 0
27 @exclude_debuginfo = params[:exclude_debuginfo]
28 @exclude_filter = params[:exclude_filter]
30 if @query.split(" ").select{|e| e.length < 2 }.size > 0
31 flash.now[:error] = 'Please use a search string of at least 2 characters' and return
34 base = @baseproject=="ALL" ? "" : @baseproject
36 @result = Seeker.prepare_result(CGI.escape(@query).gsub("+", " "), base, @exclude_filter, @exclude_debuginfo)
37 if @current_page == 1 and @result.length > 1 # ignore sub pages
38 SearchHistory.create :query => @query, :base => @baseproject, :patterns => @result.pattern_count,
39 :binaries => @result.binary_count, :count => @result.length
42 search_error, code, api_exception = ActiveXML::Transport.extract_error_message e
43 logger.error _("Could not perform search: ") + search_error
44 flash.now[:error] = _("Could not perform search: ") + search_error and return
47 flash.now[:warn] = _("Please be more precise in your search, search limit reached.") if @result.length >= 1000