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