Commit 2b5371400158fa633d1b35fd366f63e9840ede09

Authored by Antonio Terceiro
1 parent 7326693e

Revert "Listing folder items"

This reverts commit d0f8d245c7304e20f86be76e84de59e62f30c889.
app/helpers/folder_helper.rb
1 module FolderHelper 1 module FolderHelper
2 2
3 - def list_articles(articles, user, recursive = false)  
4 - if !articles.blank?  
5 - content_tag(  
6 - 'table',  
7 - content_tag('tr', content_tag('th', _('Title')) + content_tag('th', _('Last update'))) +  
8 - articles.select { |item| item.display_to?(user)}.map {|item| display_article_in_listing(item, recursive, 0)}.join('')  
9 - )  
10 - else  
11 - content_tag('em', _('(empty folder)'))  
12 - end 3 + def list_articles(articles, recursive = false)
  4 + content_tag(
  5 + 'table',
  6 + content_tag('tr', content_tag('th', _('Title')) + content_tag('th', _('Last update'))) +
  7 + articles.select { |item| item.public? }.map {|item| display_article_in_listing(item, recursive, 0)}.join('')
  8 + )
13 end 9 end
14 10
15 def display_article_in_listing(article, recursive = false, level = 0) 11 def display_article_in_listing(article, recursive = false, level = 0)
app/models/folder.rb
@@ -41,7 +41,7 @@ class Folder < Article @@ -41,7 +41,7 @@ class Folder < Article
41 end 41 end
42 42
43 def folder 43 def folder
44 - content_tag('div', body) + tag('hr') 44 + content_tag('div', body) + tag('hr') + (children.empty? ? content_tag('em', _('(empty folder)')) : list_articles(children))
45 end 45 end
46 46
47 def image_gallery 47 def image_gallery
app/views/content_viewer/view_page.rhtml
@@ -85,9 +85,6 @@ @@ -85,9 +85,6 @@
85 <% cache(@page.cache_key(params, user)) do %> 85 <% cache(@page.cache_key(params, user)) do %>
86 <div class="<%="article-body article-body-" + @page.css_class_name %>"> 86 <div class="<%="article-body article-body-" + @page.css_class_name %>">
87 <%= article_to_html(@page) %> 87 <%= article_to_html(@page) %>
88 - <% if @page.folder? %>  
89 - <%= list_articles(@page.children, user)%>  
90 - <% end %>  
91 <br style="clear:both" /> 88 <br style="clear:both" />
92 </div> <!-- end class="article-body" --> 89 </div> <!-- end class="article-body" -->
93 <% end %> 90 <% end %>
app/views/profile/sitemap.rhtml
1 <h1><%= _("%s: site map") % profile.name %></h1> 1 <h1><%= _("%s: site map") % profile.name %></h1>
2 2
3 -<%= list_articles(@articles, user) %> 3 +<%= list_articles(@articles, false) %>
test/unit/folder_helper_test.rb
@@ -15,82 +15,4 @@ class FolderHelperTest &lt; Test::Unit::TestCase @@ -15,82 +15,4 @@ class FolderHelperTest &lt; Test::Unit::TestCase
15 assert_equal 'icons-mime/unknown.png', icon_for_article(art2) 15 assert_equal 'icons-mime/unknown.png', icon_for_article(art2)
16 end 16 end
17 17
18 - should 'list all the folder\'s children to the owner' do  
19 - profile = create_user('Folder Owner').person  
20 - folder = fast_create(Folder, {:name => 'Parent Folder', :profile_id => profile.id})  
21 - sub_folder = fast_create(Folder, {:name => 'Child Folder', :parent_id => folder.id,  
22 - :profile_id => profile.id})  
23 - sub_blog = fast_create(Blog, {:name => 'Child Blog', :parent_id => folder.id,  
24 - :profile_id => profile.id})  
25 - sub_article = fast_create(Article, {:name => 'Not Public Child Article', :parent_id =>  
26 - folder.id, :profile_id => profile.id, :published => false})  
27 -  
28 - result = folder.list_articles(folder.children, profile)  
29 -  
30 - assert_match 'Child Folder', result  
31 - assert_match 'Not Public Child Article', result  
32 - assert_match 'Child Blog', result  
33 - end  
34 -  
35 - should 'list the folder\'s children that are public to the user' do  
36 - profile = create_user('Folder Owner').person  
37 - profile2 = create_user('Folder Viwer').person  
38 - folder = fast_create(Folder, {:name => 'Parent Folder', :profile_id => profile.id})  
39 - public_article = fast_create(Article, {:name => 'Public Article', :parent_id =>  
40 - folder.id, :profile_id => profile.id, :published => true})  
41 - not_public_article = fast_create(Article, {:name => 'Not Public Article', :parent_id =>  
42 - folder.id, :profile_id => profile.id, :published => false})  
43 -  
44 - result = folder.list_articles(folder.children, profile2)  
45 -  
46 - assert_match 'Public Article', result  
47 - assert_no_match /Not Public Article/, result  
48 - end  
49 -  
50 - should ' not list the folder\'s children to the user because the owner\'s profile is not public' do  
51 - profile = create_user('folder-owner').person  
52 - profile.public_profile = false  
53 - profile.save!  
54 - profile2 = create_user('Folder Viwer').person  
55 - folder = fast_create(Folder, {:name => 'Parent Folder', :profile_id => profile.id})  
56 - article = fast_create(Article, {:name => 'Article', :parent_id => folder.id, :profile_id => profile.id})  
57 -  
58 - result = folder.list_articles(folder.children, profile2)  
59 -  
60 - assert_no_match /Article/, result  
61 - end  
62 -  
63 - should ' not list the folder\'s children to the user because the owner\'s profile is not visible' do  
64 - profile = create_user('folder-owner').person  
65 - profile.visible = false  
66 - profile.save!  
67 - profile2 = create_user('Folder Viwer').person  
68 - folder = fast_create(Folder, {:name => 'Parent Folder', :profile_id => profile.id})  
69 - article = fast_create(Article, {:name => 'Article', :parent_id => folder.id, :profile_id => profile.id})  
70 -  
71 - result = folder.list_articles(folder.children, profile2)  
72 -  
73 - assert_no_match /Article/, result  
74 - end  
75 -  
76 - should 'list subitems as HTML content' do  
77 - profile = create_user('folder-owner').person  
78 - folder = fast_create(Folder, {:name => 'Parent Folder', :profile_id => profile.id})  
79 - article = fast_create(Article, {:name => 'Article1', :parent_id => folder.id, :profile_id => profile.id})  
80 - article = fast_create(Article, {:name => 'Article2', :parent_id => folder.id, :profile_id => profile.id})  
81 -  
82 - result = folder.list_articles(folder.children, profile)  
83 -  
84 - assert_tag_in_string result, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/folder-owner\/my-article-[0-9]*(\?|$)/ } }, :content => /Article1/  
85 - assert_tag_in_string result, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/folder-owner\/my-article-[0-9]*(\?|$)/ } }, :content => /Article2/  
86 - end  
87 -  
88 - should 'explictly advise if empty' do  
89 - profile = create_user('folder-owner').person  
90 - folder = fast_create(Folder, {:name => 'Parent Folder', :profile_id => profile.id})  
91 - result = folder.list_articles(folder.children, profile)  
92 -  
93 - assert_match '(empty folder)', result  
94 - end  
95 -  
96 end 18 end
test/unit/folder_test.rb
@@ -18,6 +18,23 @@ class FolderTest &lt; ActiveSupport::TestCase @@ -18,6 +18,23 @@ class FolderTest &lt; ActiveSupport::TestCase
18 assert_not_equal Article.new.icon_name, Folder.new.icon_name 18 assert_not_equal Article.new.icon_name, Folder.new.icon_name
19 end 19 end
20 20
  21 + should 'list subitems as HTML content' do
  22 + p = create_user('testuser').person
  23 + f = Folder.create!(:profile => p, :name => 'f')
  24 + f.children.create!(:profile => p, :name => 'onearticle')
  25 + f.children.create!(:profile => p, :name => 'otherarticle')
  26 + f.reload
  27 +
  28 + assert_tag_in_string f.to_html, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/testuser\/f\/onearticle(\?|$)/ } }, :content => /onearticle/
  29 + assert_tag_in_string f.to_html, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/testuser\/f\/otherarticle(\?|$)/ } }, :content => /otherarticle/
  30 + end
  31 +
  32 + should 'explictly advise if empty' do
  33 + p = create_user('testuser').person
  34 + f = Folder.create!(:profile => p, :name => 'f')
  35 + assert_tag_in_string f.to_html, :content => '(empty folder)'
  36 + end
  37 +
21 should 'show text body in HTML content' do 38 should 'show text body in HTML content' do
22 p = create_user('testuser').person 39 p = create_user('testuser').person
23 f = Folder.create!(:name => 'f', :profile => p, :body => 'this-is-the-text') 40 f = Folder.create!(:name => 'f', :profile => p, :body => 'this-is-the-text')