diff app/helpers/wiki_helper.rb @ 523:0b6c82dead28 luisf

Merge from branch "cannam"
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Mon, 25 Jul 2011 14:23:37 +0100
parents cbce1fd3b1b7
children cbb26bc654de
line wrap: on
line diff
--- a/app/helpers/wiki_helper.rb	Mon Mar 28 18:17:06 2011 +0100
+++ b/app/helpers/wiki_helper.rb	Mon Jul 25 14:23:37 2011 +0100
@@ -1,5 +1,5 @@
-# redMine - project management software
-# Copyright (C) 2006-2007  Jean-Philippe Lang
+# Redmine - project management software
+# Copyright (C) 2006-2011  Jean-Philippe Lang
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -18,52 +18,18 @@
 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
-  
-  def html_diff(wdiff)
-    words = wdiff.words.collect{|word| h(word)}
-    words_add = 0
-    words_del = 0
-    dels = 0
-    del_off = 0
-    wdiff.diff.diffs.each do |diff|
-      add_at = nil
-      add_to = nil
-      del_at = nil
-      deleted = ""	    
-      diff.each do |change|
-        pos = change[1]
-        if change[0] == "+"
-          add_at = pos + dels unless add_at
-          add_to = pos + dels
-          words_add += 1
-        else
-          del_at = pos unless del_at
-          deleted << ' ' + h(change[2])
-          words_del	 += 1
-        end
-      end
-      if add_at
-        words[add_at] = '<span class="diff_in">' + words[add_at]
-        words[add_to] = words[add_to] + '</span>'
-      end
-      if del_at
-        words.insert del_at - del_off + dels + words_add, '<span class="diff_out">' + deleted + '</span>'
-        dels += 1
-        del_off += words_del
-        words_del = 0
-      end
-    end
-    simple_format_without_paragraph(words.join(' '))
-  end
 end