move helper method where we can access it
[opensuse:software-o-o.git] / app / helpers / search_helper.rb
1 require 'workers/search_helper_job'
2
3 module SearchHelper
4   def shorten_description(text, chars)
5     text.sub /^(.{0,#{chars}}\b).*/m, '\1'
6   end
7
8   def prepare_desc(desc)
9     desc.gsub(/([\w.]+)@([\w.]+)/,'\1 [at] xxx').gsub(/\n/, "<br/>")
10   end
11
12   # returns an array of tokens: :prev, :next, :dots or 
13   # actual page
14   def paginator_list(page_count, current_page)
15     range = 3 #show 4 pages around current page
16     list = Array.new
17     return list if page_count == 1
18     
19     list << :prev unless current_page == 1
20
21     # add start block unless midrange includes first page
22     if current_page > range+1
23       1.upto current_page-range-1 do |page|
24         if page == range+2
25           list << :dots
26           break
27         end
28         list << page
29       end
30     end
31
32     midstart = current_page-range < 1 ? 1 : current_page-range
33     midend = page_count-range < current_page ? page_count : current_page+range
34     midstart.upto midend do |page|
35       list << page
36     end
37
38     list << :dots if midend < page_count-range-1
39
40     if page_count > current_page+range
41       (page_count-range).upto page_count do |page|
42         next if page <= midend
43         list << page
44       end
45     end
46
47     list << :next if current_page != page_count
48     return list
49   end
50
51   def default_baseproject
52     'openSUSE:11.3'
53   end
54
55 end