added 10.3 to available repositories for search
[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
6       # this can get removed, when 11.0 is released and available in OBS
7       if @baseproject == "openSUSE:11.0"
8          @baseproject = "openSUSE:Factory"
9       end
10
11     end
12     if params[:q]
13       perform_search
14     end
15   end
16
17   def search
18     if perform_search
19       render :partial => "search_result"
20     else
21       render :text => "Search string must have at least 2 characters."
22     end
23   end
24
25   def update_description
26     @item_key = params[:item_key]
27     if params[:type] == :pattern
28       render :update do |page|
29         page.replace_html "description-#@item_key", "blub"
30       end
31       return
32     end
33     @fname = params[:fname]
34     @item_description = "pre"
35     tmp, @project, @repository = @item_key.split(/\//)
36     begin
37       info = ::Published.find @fname, :view => "fileinfo", :project => @project,
38         :repository => @repository, :arch => params[:arch]
39       @item_description = info.description.to_s
40     rescue ActiveXML::Transport::NotFoundError
41     rescue RuntimeError
42     end
43     render :update do |page|
44       page.replace_html "description-#@item_key", :partial => 'description'
45     end
46   end
47
48   private
49   def perform_search
50     @query = params[:q]
51     @baseproject = params[:baseproject]
52     @current_page = params[:p].to_i
53     @current_page = 1 if @current_page == 0
54
55     if @query.length < 2
56       return false
57     end
58
59     base = @baseproject=="ALL" ? "" : @baseproject
60     @result = Seeker.prepare_result(@query, base)
61     return true
62   end 
63 end