Module: WikiHelper
- Defined in:
- app/helpers/wiki_helper.rb
Overview
redMine - project management software Copyright (C) 2006-2007 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 as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Instance Method Summary
- - (Object) html_diff(wdiff)
- - (Object) wiki_page_options_for_select(pages, selected = nil, parent = nil, level = 0)
Instance Method Details
- (Object) html_diff(wdiff)
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'app/helpers/wiki_helper.rb', line 33 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 |
- (Object) wiki_page_options_for_select(pages, selected = nil, parent = nil, level = 0)
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/helpers/wiki_helper.rb', line 20 def (pages, selected = nil, parent = nil, level = 0) s = '' pages.select {|p| p.parent == parent}.each do |page| attrs = "value='#{page.id}'" attrs << " selected='selected'" if selected == page indent = (level > 0) ? (' ' * level * 2 + '» ') : nil s << "<option value='#{page.id}'>#{indent}#{h page.pretty_title}</option>\n" + (pages, selected, page, level + 1) end s end |