Commit da85080af9efac681cbe9dab6b28369315965340

Authored by AntonioTerceiro
1 parent 141aa503

ActionItem410: putting back people directory


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1895 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/controllers/public/search_controller.rb
@@ -86,11 +86,18 @@ class SearchController < ApplicationController @@ -86,11 +86,18 @@ class SearchController < ApplicationController
86 86
87 if @results.keys.size == 1 87 if @results.keys.size == 1
88 specific_action = @results.keys.first 88 specific_action = @results.keys.first
89 - send(specific_action)  
90 - render :action => specific_action 89 + if respond_to?(specific_action)
  90 + send(specific_action)
  91 + render :action => specific_action
  92 + return
  93 + end
91 end 94 end
  95 +
  96 + render :action => 'index'
92 end 97 end
93 98
  99 + alias :assets :index
  100 +
94 def events 101 def events
95 @events = @results[:events] 102 @events = @results[:events]
96 @calendar = Event.date_range(params[:year], params[:month]).map do |date| 103 @calendar = Event.date_range(params[:year], params[:month]).map do |date|
@@ -118,6 +125,10 @@ class SearchController < ApplicationController @@ -118,6 +125,10 @@ class SearchController < ApplicationController
118 125
119 end 126 end
120 127
  128 + def people
  129 + #nothing, just to enable
  130 + end
  131 +
121 ####################################################### 132 #######################################################
122 133
123 # view the summary of one category 134 # view the summary of one category
@@ -139,13 +150,6 @@ class SearchController < ApplicationController @@ -139,13 +150,6 @@ class SearchController < ApplicationController
139 end 150 end
140 attr_reader :category 151 attr_reader :category
141 152
142 - #def assets  
143 - #@results = { @asset => @finder.recent(@asset, LIST_LIMIT) }  
144 -  
145 - #@asset_name = gettext(SEARCH_IN.find { |entry| entry.first == @asset }[1])  
146 - #@names = { @asset => @asset_name }  
147 - #end  
148 -  
149 def directory 153 def directory
150 @results = { @asset => @finder.find_by_initial(@asset, params[:initial]) } 154 @results = { @asset => @finder.find_by_initial(@asset, params[:initial]) }
151 155
@@ -153,7 +157,7 @@ class SearchController < ApplicationController @@ -153,7 +157,7 @@ class SearchController < ApplicationController
153 @asset_name = gettext(SEARCH_IN.find { |entry| entry.first == @asset }[1]) 157 @asset_name = gettext(SEARCH_IN.find { |entry| entry.first == @asset }[1])
154 @names = { @asset => @asset_name } 158 @names = { @asset => @asset_name }
155 159
156 - render :action => 'assets' 160 + render :action => @asset
157 end 161 end
158 162
159 def tags 163 def tags
app/helpers/assets_helper.rb
@@ -2,7 +2,7 @@ module AssetsHelper @@ -2,7 +2,7 @@ module AssetsHelper
2 2
3 def generate_assets_menu() 3 def generate_assets_menu()
4 4
5 - options = { :controller => 'search', :action => 'assets', :category_path => (@category ? @category.explode_path : []) } 5 + options = { :controller => 'search', :action => 'index', :category_path => (@category ? @category.explode_path : []) }
6 [ 6 [
7 [ options.merge(:asset => 'articles'), "icon-menu-articles", _('Articles') ], 7 [ options.merge(:asset => 'articles'), "icon-menu-articles", _('Articles') ],
8 [ options.merge(:asset => 'people'), "icon-menu-people", _('People') ], 8 [ options.merge(:asset => 'people'), "icon-menu-people", _('People') ],
app/views/search/_directory.rhtml 0 → 100644
@@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
  1 +<div style='text-align: center'>
  2 + <%= link_to_unless_current(_('Recent'), :action => 'index') %>
  3 + &nbsp;
  4 + <%= (?a..?z).map { |initial| link_to_unless_current(('' << initial).upcase, :action => 'directory', :initial => ('' << initial)) }.join(' &nbsp; ') %>
  5 +</div>
  6 +<br style='clear:both'/>
app/views/search/_display_results.rhtml
@@ -14,7 +14,9 @@ @@ -14,7 +14,9 @@
14 <% if @controller.action_name != 'assets' %> 14 <% if @controller.action_name != 'assets' %>
15 <h3> 15 <h3>
16 <%= @names[name] %> 16 <%= @names[name] %>
17 - <%= link_to _('(see more ...)'), params.merge(:action => 'index', :find_in => [ name ]) %> 17 + <% if @results.size != 1 %>
  18 + <%= link_to _('(see more ...)'), params.merge(:action => 'index', :find_in => [ name ]) %>
  19 + <% end %>
18 </h3> 20 </h3>
19 <% end %> 21 <% end %>
20 <% partial = partial_for_class results.first.class %> 22 <% partial = partial_for_class results.first.class %>
@@ -24,7 +26,7 @@ @@ -24,7 +26,7 @@
24 <%= render :partial => partial, :object => hit %> 26 <%= render :partial => partial, :object => hit %>
25 <% end %> 27 <% end %>
26 </ul> 28 </ul>
27 - <hr /> 29 + <br />
28 </div><!-- end class="search-results-innerbox" --> 30 </div><!-- end class="search-results-innerbox" -->
29 31
30 </div><!-- end class="search-results-<%= name %>" --> 32 </div><!-- end class="search-results-<%= name %>" -->
app/views/search/people.rhtml 0 → 100644
@@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
  1 +<% if @query.blank? %>
  2 + <h1><%= _('People') %></h1>
  3 + <%= render :partial => 'directory' %>
  4 +<% else %>
  5 + <h1> <%= h(@category ? (_('Search results for "%{query}" in "%{category}"') % { :query => @query, :category => @category.name}) : (_('Search results for "%s"') % @query)) %> </h1>
  6 + <div style='text-align: center'>
  7 + <%= link_to _('Browse by name'), :action => 'index', :asset => 'people' %>
  8 + </div>
  9 +<% end %>
  10 +
  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>
  15 +
  16 +<%= render :partial => 'display_results' %>
  17 +
  18 +<br style="clear:both" />
test/functional/search_controller_test.rb
@@ -515,11 +515,6 @@ class SearchControllerTest &lt; Test::Unit::TestCase @@ -515,11 +515,6 @@ class SearchControllerTest &lt; Test::Unit::TestCase
515 assert_response 403 515 assert_response 403
516 end 516 end
517 517
518 - should 'expose asset name in instance variable' do  
519 - get :assets, :asset => 'products'  
520 - assert_equal 'Products', assigns(:asset_name)  
521 - end  
522 -  
523 should 'not use design blocks' do 518 should 'not use design blocks' do
524 get :index 519 get :index
525 assert_no_tag :tag => 'div', :attributes => { :id => 'boxes', :class => 'boxes' } 520 assert_no_tag :tag => 'div', :attributes => { :id => 'boxes', :class => 'boxes' }
@@ -907,7 +902,10 @@ class SearchControllerTest &lt; Test::Unit::TestCase @@ -907,7 +902,10 @@ class SearchControllerTest &lt; Test::Unit::TestCase
907 end 902 end
908 end 903 end
909 904
910 - should 'test somehow the display of events as calendar' 905 + should 'provide calendar for events' do
  906 + get :index, :find_in => [ 'events' ]
  907 + assert_equal 0, assigns(:calendar).size % 7
  908 + end
911 909
912 ################################################################## 910 ##################################################################
913 ################################################################## 911 ##################################################################