Commit c456c608bb2973d5d9ff9c80fa60971e6dbffebd

Authored by Rodrigo Souto
Committed by Joenio Costa
1 parent fe0c4489

Tag routes uses "tags" for single or group tags

(ActionItem1558)
app/controllers/public/profile_controller.rb
... ... @@ -37,7 +37,7 @@ class ProfileController < PublicController
37 37 tagged,
38 38 :title => _("%s's contents tagged with \"%s\"") % [profile.name, @tag],
39 39 :description => _("%s's contents tagged with \"%s\"") % [profile.name, @tag],
40   - :link => url_for(:action => 'tag')
  40 + :link => url_for(:action => 'tags')
41 41 )
42 42 render :text => data, :content_type => "text/xml"
43 43 end
... ...
app/models/tags_block.rb
... ... @@ -32,7 +32,7 @@ class TagsBlock < Block
32 32 block_title(title) +
33 33 "\n<div class='tag_cloud'>\n"+
34 34 tag_cloud( tags, :id,
35   - owner.public_profile_url.merge(:controller => 'profile', :action => 'tag'),
  35 + owner.public_profile_url.merge(:controller => 'profile', :action => 'tags'),
36 36 :max_size => 16, :min_size => 9 ) +
37 37 "\n</div><!-- end class='tag_cloud' -->\n";
38 38 end
... ...
app/views/content_viewer/view_page.rhtml
... ... @@ -66,7 +66,7 @@
66 66 <% if !@page.tags.empty? %>
67 67 <div id="article-tags">
68 68 <%= _("This article's tags:") %>
69   - <%= @page.tags.map { |t| link_to(t, :controller => 'profile', :profile => @profile.identifier, :action => 'tag', :id => t.name ) }.join("\n") %>
  69 + <%= @page.tags.map { |t| link_to(t, :controller => 'profile', :profile => @profile.identifier, :action => 'tags', :id => t.name ) }.join("\n") %>
70 70 </div>
71 71 <% end %>
72 72  
... ...
app/views/profile/index.rhtml
... ... @@ -51,7 +51,7 @@
51 51 <%= _('Tags:') %>
52 52 </td>
53 53 <td>
54   - <%= tag_cloud @tags, :id, { :action => 'tag' }, :max_size => 18, :min_size => 10%>
  54 + <%= tag_cloud @tags, :id, { :action => 'tags' }, :max_size => 18, :min_size => 10%>
55 55 </td>
56 56 </tr>
57 57  
... ...
config/routes.rb
... ... @@ -66,7 +66,12 @@ ActionController::Routing::Routes.draw do |map|
66 66 map.invite 'profile/:profile/invite/:action', :controller => 'invite', :profile => /#{Noosfero.identifier_format}/
67 67  
68 68 # feeds per tag
69   - map.tag_feed 'profile/:profile/tag/:id/feed', :controller => 'profile', :action =>'tag_feed', :id => /.*/, :profile => /#{Noosfero.identifier_format}/
  69 + map.tag_feed 'profile/:profile/tags/:id/feed', :controller => 'profile', :action =>'tag_feed', :id => /.+/, :profile => /#{Noosfero.identifier_format}/
  70 + map.tag 'profile/:profile/tags/:id', :controller => 'profile', :action => 'tag', :id => /.+/, :profile => /#{Noosfero.identifier_format}/
  71 +
  72 + # profile tags
  73 + map.tag 'profile/:profile/tags/:id', :controller => 'profile', :action => 'tag', :id => /.+/, :profile => /#{Noosfero.identifier_format}/
  74 + map.tag 'profile/:profile/tag', :controller => 'profile', :action => 'tags', :profile => /#{Noosfero.identifier_format}/
70 75  
71 76 # public profile information
72 77 map.profile 'profile/:profile/:action/:id', :controller => 'profile', :action => 'index', :id => /.*/, :profile => /#{Noosfero.identifier_format}/
... ...
test/functional/content_viewer_controller_test.rb
... ... @@ -251,11 +251,11 @@ class ContentViewerControllerTest &lt; Test::Unit::TestCase
251 251 get :view_page, :profile => profile.identifier, :page => [ 'myarticle' ]
252 252 assert_tag :tag => 'div', :attributes => { :id => 'article-tags' }, :descendant => {
253 253 :tag => 'a',
254   - :attributes => { :href => "/profile/#{profile.identifier}/tag/tag1" }
  254 + :attributes => { :href => "/profile/#{profile.identifier}/tags/tag1" }
255 255 }
256 256 assert_tag :tag => 'div', :attributes => { :id => 'article-tags' }, :descendant => {
257 257 :tag => 'a',
258   - :attributes => { :href => "/profile/#{profile.identifier}/tag/tag2" }
  258 + :attributes => { :href => "/profile/#{profile.identifier}/tags/tag2" }
259 259 }
260 260  
261 261 assert_tag :tag => 'div', :attributes => { :id => 'article-tags' }, :descendant => { :content => /This article's tags:/ }
... ...
test/functional/profile_controller_test.rb
... ... @@ -311,8 +311,8 @@ class ProfileControllerTest &lt; Test::Unit::TestCase
311 311 Person.any_instance.stubs(:article_tags).returns({ 'one' => 1, 'two' => 2})
312 312 get :tags, :profile => 'testuser'
313 313  
314   - assert_tag :tag => 'div', :attributes => { :class => /main-block/ }, :descendant => { :tag => 'a', :attributes => { :href => '/profile/testuser/tag/one'} }
315   - assert_tag :tag => 'div', :attributes => { :class => /main-block/ }, :descendant => { :tag => 'a', :attributes => { :href => '/profile/testuser/tag/two'} }
  314 + assert_tag :tag => 'div', :attributes => { :class => /main-block/ }, :descendant => { :tag => 'a', :attributes => { :href => '/profile/testuser/tags/one'} }
  315 + assert_tag :tag => 'div', :attributes => { :class => /main-block/ }, :descendant => { :tag => 'a', :attributes => { :href => '/profile/testuser/tags/two'} }
316 316 end
317 317  
318 318 should 'show e-mail for friends on profile page' do
... ...
test/integration/routing_test.rb
... ... @@ -119,7 +119,7 @@ class RoutingTest &lt; ActionController::IntegrationTest
119 119 end
120 120  
121 121 def test_profile_route_for_tags_with_dot
122   - assert_routing('/profile/ze/tag/tag.withdot', :controller => 'profile', :profile => 'ze', :action => 'tag', :id => 'tag.withdot')
  122 + assert_routing('/profile/ze/tags/tag.withdot', :controller => 'profile', :profile => 'ze', :action => 'tag', :id => 'tag.withdot')
123 123 end
124 124  
125 125 def test_profile_with_tilde_routing
... ...
test/unit/tags_block_test.rb
... ... @@ -22,9 +22,9 @@ class TagsBlockTest &lt; Test::Unit::TestCase
22 22 end
23 23  
24 24 should 'generate links to tags' do
25   - assert_match /profile\/testinguser\/tag\/first-tag/, block.content
26   - assert_match /profile\/testinguser\/tag\/second-tag/, block.content
27   - assert_match /profile\/testinguser\/tag\/third-tag/, block.content
  25 + assert_match /profile\/testinguser\/tags\/first-tag/, block.content
  26 + assert_match /profile\/testinguser\/tags\/second-tag/, block.content
  27 + assert_match /profile\/testinguser\/tags\/third-tag/, block.content
28 28 end
29 29  
30 30 should 'return (none) when no tags to display' do
... ... @@ -34,7 +34,7 @@ class TagsBlockTest &lt; Test::Unit::TestCase
34 34  
35 35 should 'generate links when profile has own hostname' do
36 36 @user.domains << Domain.new(:name => 'testuser.net'); @user.save!
37   - assert_match /profile\/testinguser\/tag\/first-tag/, block.content
  37 + assert_match /profile\/testinguser\/tags\/first-tag/, block.content
38 38 end
39 39  
40 40 end
... ...