allow setting default baserepo for search without query
[opensuse:software-o-o.git] / app / controllers / search_controller.rb
1 class SearchController < ApplicationController
2   def index
3     if params[:baseproject]
4       @baseproject = params[:baseproject]
5     end
6     if params[:q]
7       perform_search
8     end
9   end
10
11   def search
12     if perform_search
13       render :partial => "search_result"
14     else
15       render :text => "Search string must have at least 2 characters."
16     end
17   end
18
19   def update_description
20     @item_key = params[:item_key]
21     if params[:type] == :pattern
22       render :update do |page|
23         page.replace_html "description-#@item_key", "blub"
24       end
25       return
26     end
27     @fname = params[:fname]
28     @item_description = "pre"
29     tmp, @project, @repository = @item_key.split(/\//)
30     begin
31       info = ::Published.find @fname, :view => "fileinfo", :project => @project,
32         :repository => @repository, :arch => params[:arch]
33       @item_description = info.description.to_s
34     rescue ActiveXML::Transport::NotFoundError
35     rescue RuntimeError
36     end
37     render :update do |page|
38       page.replace_html "description-#@item_key", :partial => 'description'
39     end
40   end
41
42   private
43   def perform_search
44     @query = params[:q]
45     @baseproject = params[:baseproject]
46     @current_page = params[:p].to_i
47     @current_page = 1 if @current_page == 0
48
49     if @query.length < 2
50       return false
51     end
52
53     base = @baseproject=="ALL" ? "" : @baseproject
54     @result = Seeker.prepare_result(@query, base)
55     return true
56   end 
57 end