Commit 61452996bb4e0876fddc4a994207ded38157bc29
1 parent
da85080a
Exists in
master
and in
29 other branches
ActionItem410: putting back several listings
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1896 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
12 changed files
with
90 additions
and
66 deletions
Show diff stats
app/controllers/public/search_controller.rb
... | ... | @@ -42,6 +42,46 @@ class SearchController < ApplicationController |
42 | 42 | end |
43 | 43 | end |
44 | 44 | |
45 | + def events | |
46 | + @events = @results[:events] | |
47 | + @calendar = Event.date_range(params[:year], params[:month]).map do |date| | |
48 | + [ | |
49 | + # the day itself | |
50 | + date, | |
51 | + # list of events of that day | |
52 | + @events.select do |event| | |
53 | + event.date_range.include?(date) | |
54 | + end, | |
55 | + # is this date in the current month? | |
56 | + true | |
57 | + ] | |
58 | + end | |
59 | + | |
60 | + # pad with days before | |
61 | + while @calendar.first.first.wday != 0 | |
62 | + @calendar.unshift([@calendar.first.first - 1.day, [], false]) | |
63 | + end | |
64 | + | |
65 | + # pad with days after (until Saturday) | |
66 | + while @calendar.last.first.wday != 6 | |
67 | + @calendar << [@calendar.last.first + 1.day, [], false] | |
68 | + end | |
69 | + | |
70 | + end | |
71 | + | |
72 | + def people | |
73 | + #nothing, just to enable | |
74 | + end | |
75 | + def enterprises | |
76 | + #nothing, just to enable | |
77 | + end | |
78 | + def communities | |
79 | + #nothing, just to enable | |
80 | + end | |
81 | + def articles | |
82 | + #nothins, just to enable | |
83 | + end | |
84 | + | |
45 | 85 | public |
46 | 86 | |
47 | 87 | include SearchHelper |
... | ... | @@ -87,6 +127,7 @@ class SearchController < ApplicationController |
87 | 127 | if @results.keys.size == 1 |
88 | 128 | specific_action = @results.keys.first |
89 | 129 | if respond_to?(specific_action) |
130 | + @asset_name = gettext(@names[@results.keys.first]) | |
90 | 131 | send(specific_action) |
91 | 132 | render :action => specific_action |
92 | 133 | return |
... | ... | @@ -98,37 +139,6 @@ class SearchController < ApplicationController |
98 | 139 | |
99 | 140 | alias :assets :index |
100 | 141 | |
101 | - def events | |
102 | - @events = @results[:events] | |
103 | - @calendar = Event.date_range(params[:year], params[:month]).map do |date| | |
104 | - [ | |
105 | - # the day itself | |
106 | - date, | |
107 | - # list of events of that day | |
108 | - @events.select do |event| | |
109 | - event.date_range.include?(date) | |
110 | - end, | |
111 | - # is this date in the current month? | |
112 | - true | |
113 | - ] | |
114 | - end | |
115 | - | |
116 | - # pad with days before | |
117 | - while @calendar.first.first.wday != 0 | |
118 | - @calendar.unshift([@calendar.first.first - 1.day, [], false]) | |
119 | - end | |
120 | - | |
121 | - # pad with days after (until Saturday) | |
122 | - while @calendar.last.first.wday != 6 | |
123 | - @calendar << [@calendar.last.first + 1.day, [], false] | |
124 | - end | |
125 | - | |
126 | - end | |
127 | - | |
128 | - def people | |
129 | - #nothing, just to enable | |
130 | - end | |
131 | - | |
132 | 142 | ####################################################### |
133 | 143 | |
134 | 144 | # view the summary of one category |
... | ... | @@ -152,8 +162,6 @@ class SearchController < ApplicationController |
152 | 162 | |
153 | 163 | def directory |
154 | 164 | @results = { @asset => @finder.find_by_initial(@asset, params[:initial]) } |
155 | - | |
156 | - # FIXME remove this duplication with assets action | |
157 | 165 | @asset_name = gettext(SEARCH_IN.find { |entry| entry.first == @asset }[1]) |
158 | 166 | @names = { @asset => @asset_name } |
159 | 167 | ... | ... |
app/helpers/dates_helper.rb
... | ... | @@ -62,28 +62,16 @@ module DatesHelper |
62 | 62 | end |
63 | 63 | |
64 | 64 | def link_to_previous_month(year, month) |
65 | - year = year.to_i | |
66 | - month = month.to_i | |
67 | - if month == 1 | |
68 | - year -= 1 | |
69 | - month = 12 | |
70 | - else | |
71 | - month -= 1 | |
72 | - end | |
65 | + date = (year.blank? || month.blank?) ? Date.today : Date.new(year.to_i, month.to_i, 1) | |
66 | + previous_month_date = date - 1.month | |
73 | 67 | |
74 | - link_to '← ' + show_month(year, month), :year => year, :month => month | |
68 | + link_to '← ' + show_month(previous_month_date.year, previous_month_date.month), :year => previous_month_date.year, :month => previous_month_date.month | |
75 | 69 | end |
76 | 70 | |
77 | 71 | def link_to_next_month(year, month) |
78 | - year = year.to_i | |
79 | - month = month.to_i | |
80 | - if month == 12 | |
81 | - year += 1 | |
82 | - month = 1 | |
83 | - else | |
84 | - month += 1 | |
85 | - end | |
72 | + date = (year.blank? || month.blank?) ? Date.today : Date.new(year.to_i, month.to_i, 1) | |
73 | + next_month_date = date + 1.month | |
86 | 74 | |
87 | - link_to show_month(year, month) + ' →', :year => year, :month => month | |
75 | + link_to show_month(next_month_date.year, next_month_date.month) + ' →', :year => next_month_date.year, :month => next_month_date.month | |
88 | 76 | end |
89 | 77 | end | ... | ... |
app/views/search/_directory.rhtml
1 | 1 | <div style='text-align: center'> |
2 | 2 | <%= link_to_unless_current(_('Recent'), :action => 'index') %> |
3 | 3 | |
4 | - <%= (?a..?z).map { |initial| link_to_unless_current(('' << initial).upcase, :action => 'directory', :initial => ('' << initial)) }.join(' ') %> | |
4 | + <%= (?a..?z).map { |initial| link_to_unless_current(('' << initial).upcase, :action => 'directory', :asset => @asset, :initial => ('' << initial)) }.join(' ') %> | |
5 | 5 | </div> |
6 | 6 | <br style='clear:both'/> | ... | ... |
app/views/search/_display_results.rhtml
... | ... | @@ -12,12 +12,12 @@ |
12 | 12 | <% if !results.nil? and !results.empty? %> |
13 | 13 | <div class="search-results-<%= name %> search-results-box <%= pos2 %> <%= 'col%s_of3' % pos3.to_s %>"> |
14 | 14 | <% if @controller.action_name != 'assets' %> |
15 | - <h3> | |
16 | - <%= @names[name] %> | |
17 | - <% if @results.size != 1 %> | |
18 | - <%= link_to _('(see more ...)'), params.merge(:action => 'index', :find_in => [ name ]) %> | |
19 | - <% end %> | |
20 | - </h3> | |
15 | + <% if @results.size != 1 %> | |
16 | + <h3> | |
17 | + <%= @names[name] %> | |
18 | + <%= link_to _('(more ...)'), params.merge(:action => 'index', :find_in => [ name ]) %> | |
19 | + </h3> | |
20 | + <% end %> | |
21 | 21 | <% end %> |
22 | 22 | <% partial = partial_for_class results.first.class %> |
23 | 23 | <div class="search-results-innerbox search-results-type-<%= partial %> <%= 'common-profile-list-block' if partial == 'profile' %>"> |
... | ... | @@ -33,7 +33,9 @@ |
33 | 33 | <% else %> |
34 | 34 | <div class="search-results-<%= name %> search-results-empty search-results-box <%= pos2 %> <%= 'col%s_of3' % pos3.to_s %>"> |
35 | 35 | <% if @controller.action_name != 'assets' %> |
36 | - <h3><%= @names[name] %></h3> | |
36 | + <% if @results.size != 1 %> | |
37 | + <h3><%= @names[name] %></h3> | |
38 | + <% end %> | |
37 | 39 | <% end %> |
38 | 40 | <div class="search-results-innerbox search-results-type-empty"> |
39 | 41 | <div> <%= _('None') %> </div> | ... | ... |
app/views/search/_search_form.rhtml
1 | +<div class='search-form'> | |
2 | + | |
1 | 3 | <% simple_search = false unless defined? simple_search %> |
2 | 4 | |
3 | 5 | <% form_tag( { :action => 'index', :category_path => ( @category ? @category.explode_path : [] ) }, |
... | ... | @@ -53,3 +55,5 @@ |
53 | 55 | <% end; end %> |
54 | 56 | |
55 | 57 | <% end %> |
58 | + | |
59 | +</div> <!-- id="search-form" --> | ... | ... |
app/views/search/events.rhtml
1 | -<h1><%= show_month(params[:year], params[:month]) %></h1> | |
1 | +<h1> | |
2 | + <% if @category %> | |
3 | + <%= @category.name %>: | |
4 | + <% end %> | |
5 | + <%= show_month(params[:year], params[:month]) %> | |
6 | +</h1> | |
2 | 7 | |
3 | 8 | <div style='text-align: center; margin: 1em;'> |
4 | 9 | <%= link_to_previous_month(params[:year], params[:month]) %> | ... | ... |
app/views/search/people.rhtml
1 | 1 | <% if @query.blank? %> |
2 | - <h1><%= _('People') %></h1> | |
2 | + <h1><%= @asset_name %></h1> | |
3 | 3 | <%= render :partial => 'directory' %> |
4 | 4 | <% else %> |
5 | - <h1> <%= h(@category ? (_('Search results for "%{query}" in "%{category}"') % { :query => @query, :category => @category.name}) : (_('Search results for "%s"') % @query)) %> </h1> | |
5 | + <h1> <%= @asset_name %>: <%= h(@category ? (_('Search results for "%{query}" in "%{category}"') % { :query => @query, :category => @category.name}) : (_('Search results for "%s"') % @query)) %> </h1> | |
6 | 6 | <div style='text-align: center'> |
7 | 7 | <%= link_to _('Browse by name'), :action => 'index', :asset => 'people' %> |
8 | 8 | </div> |
9 | 9 | <% end %> |
10 | 10 | |
11 | 11 | |
12 | -<div style='text-align: center'> | |
13 | - <%= render :partial => 'search_form', :locals => { :form_title => @query.blank? ? _('Search') : _("Refine your search"), :simple_search => true } %> | |
14 | -</div> | |
12 | +<%= render :partial => 'search_form', :locals => { :form_title => @query.blank? ? _('Search') : _("Refine your search"), :simple_search => true } %> | |
15 | 13 | |
16 | 14 | <%= render :partial => 'display_results' %> |
17 | 15 | ... | ... |
public/stylesheets/search.css
... | ... | @@ -24,7 +24,7 @@ |
24 | 24 | font-size: 16px; |
25 | 25 | } |
26 | 26 | |
27 | -#search-popup .search-field { | |
27 | +#search-popup .search-field, .search-form { | |
28 | 28 | text-align: center; |
29 | 29 | } |
30 | 30 | |
... | ... | @@ -52,6 +52,10 @@ |
52 | 52 | padding: 0px 5px; |
53 | 53 | } |
54 | 54 | |
55 | +.search-options { | |
56 | + text-align: left; | |
57 | +} | |
58 | + | |
55 | 59 | .search-options li { |
56 | 60 | float: left; |
57 | 61 | width: 33%; | ... | ... |
test/unit/dates_helper_test.rb
... | ... | @@ -58,4 +58,16 @@ class DatesHelperTest < Test::Unit::TestCase |
58 | 58 | link_to_next_month('2008', '12') |
59 | 59 | end |
60 | 60 | |
61 | + should 'get current date when year and month are not informed for next month' do | |
62 | + Date.expects(:today).returns(Date.new(2008,1,1)) | |
63 | + expects(:link_to).with('February 2008 →', { :year => 2008, :month => 2}) | |
64 | + link_to_next_month(nil, nil) | |
65 | + end | |
66 | + | |
67 | + should 'get current date when year and month are not informed for previous month' do | |
68 | + Date.expects(:today).returns(Date.new(2008,1,1)) | |
69 | + expects(:link_to).with('← December 2007', { :year => 2007, :month => 12}) | |
70 | + link_to_previous_month(nil, nil) | |
71 | + end | |
72 | + | |
61 | 73 | end | ... | ... |