diff app/helpers/wiki_helper.rb @ 441:cbce1fd3b1b7 redmine-1.2

Update to Redmine 1.2-stable branch (Redmine SVN rev 6000)
author Chris Cannam
date Mon, 06 Jun 2011 14:24:13 +0100
parents 051f544170fe
children cbb26bc654de
line wrap: on
line diff
--- a/app/helpers/wiki_helper.rb	Thu Mar 03 11:42:28 2011 +0000
+++ b/app/helpers/wiki_helper.rb	Mon Jun 06 14:24:13 2011 +0100
@@ -18,14 +18,17 @@
 module WikiHelper
   
   def wiki_page_options_for_select(pages, selected = nil, parent = nil, level = 0)
+    pages = pages.group_by(&:parent) unless pages.is_a?(Hash)
     s = ''
-    pages.select {|p| p.parent == parent}.each do |page|
-      attrs = "value='#{page.id}'"
-      attrs << " selected='selected'" if selected == page
-      indent = (level > 0) ? ('&nbsp;' * level * 2 + '&#187; ') : nil
-      
-      s << "<option #{attrs}>#{indent}#{h page.pretty_title}</option>\n" + 
-             wiki_page_options_for_select(pages, selected, page, level + 1)
+    if pages.has_key?(parent)
+      pages[parent].each do |page|
+        attrs = "value='#{page.id}'"
+        attrs << " selected='selected'" if selected == page
+        indent = (level > 0) ? ('&nbsp;' * level * 2 + '&#187; ') : nil
+        
+        s << "<option #{attrs}>#{indent}#{h page.pretty_title}</option>\n" + 
+               wiki_page_options_for_select(pages, selected, page, level + 1)
+      end
     end
     s
   end