Commit a93fffc36a9fe889545802b64c1bcd3ab558f9ca

Authored by AntonioTerceiro
1 parent 19ebc11f

ActionItem255: changing the categories menu to list all children of the top level items


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1632 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/views/shared/categories_menu.rhtml
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 <li id="category<%= item.display_color %>"<%= ' class="active"' if (@category && (@category.top_ancestor == item)) %>> 4 <li id="category<%= item.display_color %>"<%= ' class="active"' if (@category && (@category.top_ancestor == item)) %>>
5 <%= item.name %> 5 <%= item.name %>
6 <ul> 6 <ul>
7 - <% item.children.each do |child| %> 7 + <% item.all_children.each do |child| %>
8 <% if (params[:controller] == 'search') && (params[:action] == 'assets') %> 8 <% if (params[:controller] == 'search') && (params[:action] == 'assets') %>
9 <li><%= link_to(content_tag('span', child.name), :controller => 'search', :action => 'assets', :asset => params[:asset], :category_path => child.explode_path) %></li> 9 <li><%= link_to(content_tag('span', child.name), :controller => 'search', :action => 'assets', :asset => params[:asset], :category_path => child.explode_path) %></li>
10 <% else %> 10 <% else %>
lib/acts_as_filesystem.rb
@@ -164,7 +164,7 @@ module ActsAsFileSystem @@ -164,7 +164,7 @@ module ActsAsFileSystem
164 while !stack.empty? 164 while !stack.empty?
165 element = stack.pop 165 element = stack.pop
166 result.push(element) 166 result.push(element)
167 - element.children.each do |item| 167 + element.children.reverse.each do |item|
168 stack.push(item) 168 stack.push(item)
169 end 169 end
170 end 170 end
@@ -172,6 +172,12 @@ module ActsAsFileSystem @@ -172,6 +172,12 @@ module ActsAsFileSystem
172 result.map(&block) 172 result.map(&block)
173 end 173 end
174 174
  175 + def all_children
  176 + res = map_traversal
  177 + res.shift
  178 + res
  179 + end
  180 +
175 end 181 end
176 end 182 end
177 183
test/unit/acts_as_filesystem_test.rb
@@ -35,6 +35,20 @@ class ActsAsFilesystemTest &lt; Test::Unit::TestCase @@ -35,6 +35,20 @@ class ActsAsFilesystemTest &lt; Test::Unit::TestCase
35 assert_equivalent [a1, a1_1, a1_2, a1_1_1, a1_1_2], a1.map_traversal 35 assert_equivalent [a1, a1_1, a1_2, a1_1_1, a1_1_2], a1.map_traversal
36 end 36 end
37 37
  38 + should 'list the full tree without the root' do
  39 + profile = create_user('testinguser').person
  40 +
  41 + a1 = profile.articles.build(:name => 'a1'); a1.save!
  42 +
  43 + a1_1 = profile.articles.build(:name => 'a1.1'); a1_1.parent = a1; a1_1.save!
  44 + a1_2 = profile.articles.build(:name => 'a1.2'); a1_2.parent = a1; a1_2.save!
  45 +
  46 + a1_1_1 = profile.articles.build(:name => 'a1.1.1'); a1_1_1.parent = a1_1; a1_1_1.save!
  47 + a1_1_2 = profile.articles.build(:name => 'a1.1.2'); a1_1_2.parent = a1_1; a1_1_2.save!
  48 +
  49 + assert_equivalent [a1_1, a1_2, a1_1_1, a1_1_2].map(&:id), a1.all_children.map(&:id)
  50 + end
  51 +
38 should 'be able to traverse with a block' do 52 should 'be able to traverse with a block' do
39 profile = create_user('testinguser').person 53 profile = create_user('testinguser').person
40 54