also translate /search
[opensuse:software-o-o.git] / app / controllers / search_controller.rb
1 class SearchController < ApplicationController
2   layout "application"
3
4   def index
5     if params[:lang].nil?
6       lang = request.compatible_language_from(LANGUAGES) || "en"
7     else
8       lang = params[:lang][0]
9     end
10     GetText.locale = lang
11
12     if params[:baseproject]
13       @baseproject = params[:baseproject]
14     end
15     if params[:q]
16       perform_search
17     end
18   end
19
20   def search
21     if perform_search
22       render :partial => "search_result"
23     else
24       render :text => "Search strings must have at least 2 characters."
25     end
26   end
27
28
29   private
30   
31   def perform_search
32     @query = params[:q]
33     @baseproject = params[:baseproject]
34     cookies[:search_baseproject] = { :value => @baseproject, :expires => 1.month.from_now }
35     @current_page = params[:p].to_i
36     @current_page = 1 if @current_page == 0
37
38     return false if @query.length < 2
39     return false if @query =~ / / and @query.split(" ").select{|e| e.length < 2 }.size > 0
40     
41     base = @baseproject=="ALL" ? "" : @baseproject
42     @result = Seeker.prepare_result(CGI.escape(@query).gsub("+", " "), base)
43     return true
44   end 
45 end