motiro 0.6.10 → 0.6.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. data/AUTHORS +7 -11
  2. data/LICENSE +602 -262
  3. data/README +6 -7
  4. data/README.en +5 -6
  5. data/README.pt-br +6 -6
  6. data/app/controllers/account_controller.rb +5 -6
  7. data/app/controllers/application.rb +5 -6
  8. data/app/controllers/javascript_controller.rb +6 -7
  9. data/app/controllers/report_controller.rb +5 -6
  10. data/app/controllers/root_controller.rb +5 -1
  11. data/app/controllers/wiki_controller.rb +10 -8
  12. data/app/core/cache_reporter.rb +6 -7
  13. data/app/core/cache_reporter_fetcher.rb +6 -6
  14. data/app/core/chief_editor.rb +5 -6
  15. data/app/core/license.rb +598 -0
  16. data/app/core/reporter.rb +6 -7
  17. data/app/core/reporter_driver.rb +5 -5
  18. data/app/core/reporter_fetcher.rb +6 -7
  19. data/app/core/settings.rb +5 -6
  20. data/app/core/version.rb +1 -1
  21. data/app/core/wiki_reporter.rb +5 -6
  22. data/app/helpers/application_helper.rb +33 -16
  23. data/app/helpers/default_page_provider.rb +6 -7
  24. data/app/helpers/report_helper.rb +5 -6
  25. data/app/helpers/wiki_helper.rb +48 -0
  26. data/app/models/change.rb +5 -6
  27. data/app/models/chunk.rb +5 -6
  28. data/app/models/feed_observer.rb +6 -7
  29. data/app/models/headline.rb +5 -6
  30. data/app/models/page.rb +16 -7
  31. data/app/models/revision.rb +9 -9
  32. data/app/models/user.rb +6 -9
  33. data/app/models/wiki_reference.rb +5 -6
  34. data/app/models/wiki_sweeper.rb +6 -7
  35. data/app/ports/chdir_runner.rb +6 -7
  36. data/app/ports/runner.rb +5 -5
  37. data/app/reporters/darcs_connection.rb +6 -7
  38. data/app/reporters/darcs_reporter.rb +9 -10
  39. data/app/reporters/darcs_temp_repo.rb +5 -6
  40. data/app/reporters/events_reporter.rb +5 -6
  41. data/app/reporters/features_reporter.rb +5 -6
  42. data/app/reporters/subversion_reporter.rb +5 -6
  43. data/app/reporters/svn_connection.rb +6 -6
  44. data/app/reporters/svn_settings.rb +5 -5
  45. data/app/views/account/_authorization.rhtml +31 -23
  46. data/app/views/account/_availability.rhtml +1 -3
  47. data/app/views/javascript/motiro.rjs +6 -8
  48. data/app/views/layouts/_bottom.rhtml +7 -0
  49. data/app/views/report/list.rhtml +1 -1
  50. data/app/views/root/license.rhtml +5 -0
  51. data/app/views/wiki/_editbar.rhtml +2 -18
  52. data/app/views/wiki/_properties_show.rhtml +2 -1
  53. data/app/views/wiki/_show_event.rhtml +3 -1
  54. data/app/views/wiki/_show_feature.rhtml +2 -2
  55. data/app/views/wiki/diff.rhtml +2 -2
  56. data/app/views/wiki/page_feed.rxml +1 -13
  57. data/app/views/wiki/raw.rhtml +7 -0
  58. data/app/views/wiki/show.rhtml +1 -1
  59. data/app/views/wiki/sourcediff.rhtml +2 -2
  60. data/bin/motiro +5 -6
  61. data/config/initializers/motiro_core.rb +1 -0
  62. data/config/routes.rb +9 -6
  63. data/db/translation/pt-BR.rb +20 -6
  64. data/lib/array_extensions.rb +6 -7
  65. data/lib/diff_chunk_builder.rb +5 -6
  66. data/lib/differ.rb +5 -6
  67. data/lib/string_extensions.rb +5 -6
  68. data/lib/stub_hash.rb +5 -6
  69. data/lib/tasks/packaging.rake +7 -7
  70. data/lib/tasks/testing.rake +5 -6
  71. data/lib/tick_daemon.rb +5 -6
  72. data/lib/wiki_link_handler.rb +5 -6
  73. data/lib/wiki_renderer.rb +5 -6
  74. data/public/images/calendar.gif +0 -0
  75. data/public/images/done.gif +0 -0
  76. data/public/images/error.gif +0 -0
  77. data/public/images/not-done.gif +0 -0
  78. data/public/images/rss.gif +0 -0
  79. data/public/stylesheets/motiro.css +163 -170
  80. data/script/ticker +5 -6
  81. data/test/acceptance/account_test.rb +6 -7
  82. data/test/acceptance/darcs_test.rb +6 -7
  83. data/test/acceptance/events_test.rb +5 -6
  84. data/test/acceptance/main_page_test.rb +6 -7
  85. data/test/acceptance/subversion_test.rb +5 -6
  86. data/test/acceptance/ts_all_suites.rb +5 -6
  87. data/test/acceptance/wiki_test.rb +5 -6
  88. data/test/contract/darcs_test.rb +5 -6
  89. data/test/contract/svn_test.rb +5 -6
  90. data/test/fixtures/pages.yml +12 -0
  91. data/test/fixtures/revisions.yml +61 -0
  92. data/test/functional/report_controller_test.rb +5 -6
  93. data/test/functional/report_features_test.rb +5 -6
  94. data/test/functional/report_subversion_test.rb +5 -6
  95. data/test/functional/root_controller_test.rb +19 -4
  96. data/test/functional/wiki_controller_test.rb +66 -8
  97. data/test/lib/acceptance_test_case.rb +6 -7
  98. data/test/lib/darcs_excerpts.rb +5 -6
  99. data/test/lib/darcs_repo.rb +5 -6
  100. data/test/lib/hash_extensions.rb +5 -6
  101. data/test/lib/live_mode_test.rb +6 -7
  102. data/test/lib/netutils.rb +6 -7
  103. data/test/lib/platform_thread.rb +5 -5
  104. data/test/lib/selenium_extensions.rb +6 -7
  105. data/test/lib/stubio.rb +6 -7
  106. data/test/lib/webserver.rb +5 -6
  107. data/test/meta/darcs_repo_test.rb +6 -6
  108. data/test/meta/local_svn_test.rb +6 -7
  109. data/test/meta/platform_thread_test.rb +5 -5
  110. data/test/meta/stubio_test.rb +6 -7
  111. data/test/stubs/wiki_link_handler.rb +5 -6
  112. data/test/test_helper.rb +5 -6
  113. data/test/unit/array_extensions_test.rb +5 -6
  114. data/test/unit/cache_reporter_fetcher_test.rb +5 -6
  115. data/test/unit/cache_reporter_test.rb +5 -6
  116. data/test/unit/change_test.rb +5 -6
  117. data/test/unit/chdir_runner_test.rb +5 -6
  118. data/test/unit/chief_editor_test.rb +5 -6
  119. data/test/unit/darcs_connection_test.rb +5 -6
  120. data/test/unit/darcs_reporter_test.rb +14 -6
  121. data/test/unit/darcs_temp_repo_test.rb +5 -6
  122. data/test/unit/default_page_provider_test.rb +5 -6
  123. data/test/unit/diff_chunk_builder_test.rb +6 -7
  124. data/test/unit/headline_test.rb +5 -6
  125. data/test/unit/page_test.rb +45 -6
  126. data/test/unit/reporter_driver_test.rb +6 -7
  127. data/test/unit/reporter_test.rb +6 -7
  128. data/test/unit/revision_test.rb +17 -13
  129. data/test/unit/runner_test.rb +5 -6
  130. data/test/unit/string_extensions_test.rb +6 -7
  131. data/test/unit/svn_connection_test.rb +5 -5
  132. data/test/unit/svn_reporter_interaction_test.rb +6 -7
  133. data/test/unit/svn_reporter_test.rb +5 -6
  134. data/test/unit/svn_settings_test.rb +6 -7
  135. data/test/unit/user_test.rb +6 -11
  136. data/test/unit/wiki_link_handler_test.rb +5 -6
  137. data/test/unit/wiki_renderer_test.rb +7 -7
  138. data/test/unit/wiki_reporter_test.rb +5 -6
  139. data/vendor/mediacloth-trunk/lib/mediacloth/mediawikiast.rb +15 -0
  140. data/vendor/mediacloth-trunk/lib/mediacloth/mediawikihtmlgenerator.rb +18 -3
  141. data/vendor/mediacloth-trunk/lib/mediacloth/mediawikilexer.rb +48 -9
  142. data/vendor/mediacloth-trunk/lib/mediacloth/mediawikilinkhandler.rb +7 -0
  143. data/vendor/mediacloth-trunk/lib/mediacloth/mediawikiparser.rb +534 -485
  144. data/vendor/mediacloth-trunk/lib/mediacloth/mediawikiparser.y +25 -1
  145. data/vendor/mediacloth-trunk/lib/mediacloth/mediawikiwalker.rb +13 -0
  146. data/vendor/mediacloth-trunk/test/data/html1 +3 -3
  147. data/vendor/mediacloth-trunk/test/data/html10 +16 -16
  148. data/vendor/mediacloth-trunk/test/data/html11 +1 -1
  149. data/vendor/mediacloth-trunk/test/data/html13 +1 -1
  150. data/vendor/mediacloth-trunk/test/data/html4 +1 -1
  151. data/vendor/mediacloth-trunk/test/data/html5 +4 -4
  152. data/vendor/mediacloth-trunk/test/data/html7 +13 -1
  153. data/vendor/mediacloth-trunk/test/data/html9 +1 -1
  154. data/vendor/mediacloth-trunk/test/data/input1 +2 -0
  155. data/vendor/mediacloth-trunk/test/data/input7 +13 -1
  156. data/vendor/mediacloth-trunk/test/data/lex1 +1 -1
  157. data/vendor/mediacloth-trunk/test/data/lex7 +13 -1
  158. data/vendor/mediacloth-trunk/test/htmlgenerator.rb +26 -1
  159. data/vendor/mediacloth-trunk/test/lexer.rb +10 -0
  160. metadata +95 -103
  161. data/build/build.rb +0 -29
  162. data/config/report/subversion.yml +0 -26
  163. data/public/images/calendar.png +0 -0
  164. data/public/images/done.png +0 -0
  165. data/public/images/not-done.png +0 -0
  166. data/public/images/rss.png +0 -0
data/app/core/reporter.rb CHANGED
@@ -2,18 +2,17 @@
2
2
  # Copyright (C) 2006-2008 Thiago Arrais
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; either version 2 of the License, or
5
+ # it under the terms of the GNU Affero General Public License as published by
6
+ # the Free Software Foundation; either version 3 of the License, or
7
7
  # any later version.
8
8
  #
9
9
  # This program is distributed in the hope that it will be useful,
10
10
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
12
+ # GNU Affero General Public License for more details.
13
13
  #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
14
+ # You should have received a copy of the GNU Affero General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
16
 
18
17
  require 'rubygems'
19
18
  require 'active_support'
@@ -102,4 +101,4 @@ public
102
101
 
103
102
  add button[:older]
104
103
 
105
- end
104
+ end
@@ -2,17 +2,17 @@
2
2
  # Copyright (C) 2006-2008 Thiago Arrais
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; either version 2 of the License, or
5
+ # it under the terms of the GNU Affero General Public License as published by
6
+ # the Free Software Foundation; either version 3 of the License, or
7
7
  # any later version.
8
8
  #
9
9
  # This program is distributed in the hope that it will be useful,
10
10
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
12
+ # GNU Affero General Public License for more details.
13
13
  #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
14
+ # You should have received a copy of the GNU Affero General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
16
16
  # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17
17
 
18
18
  require 'core/reporter_fetcher'
@@ -2,18 +2,17 @@
2
2
  # Copyright (C) 2006-2008 Thiago Arrais
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; either version 2 of the License, or
5
+ # it under the terms of the GNU Affero General Public License as published by
6
+ # the Free Software Foundation; either version 3 of the License, or
7
7
  # any later version.
8
8
  #
9
9
  # This program is distributed in the hope that it will be useful,
10
10
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
12
+ # GNU Affero General Public License for more details.
13
13
  #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
14
+ # You should have received a copy of the GNU Affero General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
16
 
18
17
  require_dependency 'core/settings'
19
18
  require_dependency 'ports/reporter_loader'
@@ -36,4 +35,4 @@ class ReporterFetcher
36
35
  reporters << EventsReporter.new
37
36
  end
38
37
 
39
- end
38
+ end
data/app/core/settings.rb CHANGED
@@ -2,18 +2,17 @@
2
2
  # Copyright (C) 2006-2008 Thiago Arrais
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; either version 2 of the License, or
5
+ # it under the terms of the GNU Affero General Public License as published by
6
+ # the Free Software Foundation; either version 3 of the License, or
7
7
  # any later version.
8
8
  #
9
9
  # This program is distributed in the hope that it will be useful,
10
10
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
12
+ # GNU Affero General Public License for more details.
13
13
  #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
14
+ # You should have received a copy of the GNU Affero General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
16
 
18
17
  require 'yaml'
19
18
 
data/app/core/version.rb CHANGED
@@ -1 +1 @@
1
- MOTIRO_VERSION = '0.6.10'
1
+ MOTIRO_VERSION = '0.6.11'
@@ -2,18 +2,17 @@
2
2
  # Copyright (C) 2006-2008 Thiago Arrais
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; either version 2 of the License, or
5
+ # it under the terms of the GNU Affero General Public License as published by
6
+ # the Free Software Foundation; either version 3 of the License, or
7
7
  # any later version.
8
8
  #
9
9
  # This program is distributed in the hope that it will be useful,
10
10
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
12
+ # GNU Affero General Public License for more details.
13
13
  #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
14
+ # You should have received a copy of the GNU Affero General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
16
 
18
17
  require 'core/reporter'
19
18
  require 'core/settings'
@@ -2,18 +2,17 @@
2
2
  # Copyright (C) 2006-2008 Thiago Arrais
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; either version 2 of the License, or
5
+ # it under the terms of the GNU Affero General Public License as published by
6
+ # the Free Software Foundation; either version 3 of the License, or
7
7
  # any later version.
8
8
  #
9
9
  # This program is distributed in the hope that it will be useful,
10
10
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
12
+ # GNU Affero General Public License for more details.
13
13
  #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
14
+ # You should have received a copy of the GNU Affero General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
16
 
18
17
  # Methods added to this helper will be available to all templates in the application.
19
18
  module ApplicationHelper
@@ -38,13 +37,12 @@ module ApplicationHelper
38
37
 
39
38
  def pagetext(title, revision=nil, &block)
40
39
  content = capture(&block)
41
- b = Builder::XmlMarkup.new
42
40
  xml = b.div(:class => 'pagetext') do
43
41
  b.a(:href => url_for(:controller => 'wiki', :action => 'history',
44
42
  :page_name => @page.name, :locale => @locale,
45
43
  :format => 'xml'),
46
44
  :class => 'rss') do
47
- b << image_tag("rss.png", :border => 0, :class => 'rss',
45
+ b << image_tag("rss.gif", :border => 0, :class => 'rss',
48
46
  :alt => 'Changes to %s' / @page.name)
49
47
  end unless @page.nil?
50
48
  b.div(:id => 'crumbs') do
@@ -68,12 +66,25 @@ module ApplicationHelper
68
66
  concat(xml, block.binding)
69
67
  end
70
68
 
69
+ def parsing_error_box
70
+ content_tag(:div,
71
+ image_tag('error.gif') +
72
+ content_tag(:p, ('The following wiki code contains an ' +
73
+ 'error that prevents it from being ' +
74
+ 'correctly formatted.').t),
75
+ :class => 'message wikierror')
76
+ end
77
+
71
78
  def render_wiki(text)
72
- @renderer.render_wiki_text(text)
79
+ begin
80
+ @renderer.render_wiki_text(text)
81
+ rescue
82
+ parsing_error_box + content_tag(:pre, h(text), :class => 'wikisource')
83
+ end
73
84
  end
74
85
 
75
86
  def render_diff_table(chunks)
76
- Builder::XmlMarkup.new.table :class => 'diff', :cellspacing => '0' do |b|
87
+ b.table :class => 'diff', :cellspacing => '0' do |b|
77
88
  b.colgroup do
78
89
  b.col :class => 'line_number'
79
90
  b.col :class => 'left'
@@ -84,19 +95,19 @@ module ApplicationHelper
84
95
  if chunk.separator?
85
96
  b.tbody :class => 'separator' do
86
97
  b.tr do
87
- b.td
98
+ b.th
88
99
  b.td('%s more lines' / chunk.num_lines.to_s, :colspan => '2')
89
- b.td
100
+ b.th
90
101
  end
91
102
  end
92
103
  else
93
104
  b.tbody :class => chunk.action.to_s do
94
105
  chunk.lines.each do |line|
95
106
  b.tr do
96
- b.td {b << (line.original_position || '&nbsp;').to_s}
97
- b.td {b.pre{b << (h(line.original_text) || '&nbsp;')}}
98
- b.td {b.pre{b << (h(line.modified_text) || '&nbsp;')}}
99
- b.td {b << (line.modified_position || '&nbsp;').to_s}
107
+ b.th {b << (line.original_position || '&nbsp;').to_s}
108
+ b.td {b.pre {b << (h(line.original_text) || '&nbsp;')}}
109
+ b.td {b.pre {b << (h(line.modified_text) || '&nbsp;')}}
110
+ b.th {b << (line.modified_position || '&nbsp;').to_s}
100
111
  end
101
112
  end
102
113
  end
@@ -105,6 +116,12 @@ module ApplicationHelper
105
116
  end
106
117
  end
107
118
 
119
+ private
120
+
121
+ def b
122
+ @markup ||= Builder::XmlMarkup.new
123
+ end
124
+
108
125
  end
109
126
 
110
127
  class NullUser
@@ -2,18 +2,17 @@
2
2
  # Copyright (C) 2006-2008 Thiago Arrais
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; either version 2 of the License, or
5
+ # it under the terms of the GNU Affero General Public License as published by
6
+ # the Free Software Foundation; either version 3 of the License, or
7
7
  # any later version.
8
8
  #
9
9
  # This program is distributed in the hope that it will be useful,
10
10
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
12
+ # GNU Affero General Public License for more details.
13
13
  #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
14
+ # You should have received a copy of the GNU Affero General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
16
 
18
17
  class DefaultPageProvider
19
18
 
@@ -25,4 +24,4 @@ class DefaultPageProvider
25
24
  @provider.find_by_name(name) || Page.new(:name => name)
26
25
  end
27
26
 
28
- end
27
+ end
@@ -2,18 +2,17 @@
2
2
  # Copyright (C) 2006-2008 Thiago Arrais
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; either version 2 of the License, or
5
+ # it under the terms of the GNU Affero General Public License as published by
6
+ # the Free Software Foundation; either version 3 of the License, or
7
7
  # any later version.
8
8
  #
9
9
  # This program is distributed in the hope that it will be useful,
10
10
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
12
+ # GNU Affero General Public License for more details.
13
13
  #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
14
+ # You should have received a copy of the GNU Affero General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
16
 
18
17
  module ReportHelper
19
18
 
@@ -1,5 +1,25 @@
1
1
  module WikiHelper
2
2
 
3
+ def edition_link(user, page)
4
+ if user.nil?
5
+ content_tag('span', "#{'Edit'.t} #{'(requires authentication)'.t}",
6
+ :class => 'disabled')
7
+ elsif !user.can_edit?(page)
8
+ 'Edit'.t + ' ' + content_tag('span', '(not authorized)'.t,
9
+ :class => flash[:not_authorized] ? 'marked' : 'none')
10
+ else
11
+ link_to('Edit'.t, :controller => 'wiki', :action => 'edit',
12
+ :page_name => page.name)
13
+ end
14
+ end
15
+
16
+ def switch_view_link(page)
17
+ action, text = 'raw' == params[:action].to_s ? ['show','View wiki output'] :
18
+ ['raw' ,'View raw text']
19
+ '| ' + link_to(text.t, :controller => :wiki, :action => action,
20
+ :page_name => page.name, :revision => page.position)
21
+ end
22
+
3
23
  def page_history_link(page)
4
24
  case page.revisions.size
5
25
  when 0 then ''
@@ -10,4 +30,32 @@ module WikiHelper
10
30
  end
11
31
  end
12
32
 
33
+ def render_wiki_diff(old_revision, new_revision)
34
+ begin
35
+ @renderer.render_wiki_diff(old_revision.text, new_revision.text)
36
+ rescue
37
+ parsing_error_box + render_wiki_sourcediff(old_revision, new_revision)
38
+ end
39
+ end
40
+
41
+ def render_wiki_sourcediff(old_revision, new_revision)
42
+ render_diff_table(old_revision.diff(new_revision))
43
+ end
44
+
45
+ def rss_item_for_revision(rev)
46
+ Builder::XmlMarkup.new.item do |xml|
47
+ xml.title h(rev.title)
48
+ if rev.position > 1
49
+ xml.description @renderer.render_wiki_diff(
50
+ @page.revisions[rev.position - 2].text, rev.text)
51
+ else
52
+ xml.description @renderer.render_wiki_text(rev.text)
53
+ end
54
+ xml.pubDate h(rev.modified_at.to_s(:rfc822))
55
+ xml.dc :creator, h(rev.last_editor.login)
56
+ xml.guid server_url_for(:action => 'show', :page_name => @page.name,
57
+ :revision => rev.position)
58
+ end rescue ''
59
+ end
60
+
13
61
  end
data/app/models/change.rb CHANGED
@@ -2,18 +2,17 @@
2
2
  # Copyright (C) 2006-2008 Thiago Arrais
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; either version 2 of the License, or
5
+ # it under the terms of the GNU Affero General Public License as published by
6
+ # the Free Software Foundation; either version 3 of the License, or
7
7
  # any later version.
8
8
  #
9
9
  # This program is distributed in the hope that it will be useful,
10
10
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
12
+ # GNU Affero General Public License for more details.
13
13
  #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
14
+ # You should have received a copy of the GNU Affero General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
16
 
18
17
  class Change < ActiveRecord::Base
19
18
 
data/app/models/chunk.rb CHANGED
@@ -2,18 +2,17 @@
2
2
  # Copyright (C) 2006-2008 Thiago Arrais
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; either version 2 of the License, or
5
+ # it under the terms of the GNU Affero General Public License as published by
6
+ # the Free Software Foundation; either version 3 of the License, or
7
7
  # any later version.
8
8
  #
9
9
  # This program is distributed in the hope that it will be useful,
10
10
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
12
+ # GNU Affero General Public License for more details.
13
13
  #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
14
+ # You should have received a copy of the GNU Affero General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
16
 
18
17
  class Chunk
19
18
  attr_reader :lines, :action
@@ -2,18 +2,17 @@
2
2
  # Copyright (C) 2006-2008 Thiago Arrais
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; either version 2 of the License, or
5
+ # it under the terms of the GNU Affero General Public License as published by
6
+ # the Free Software Foundation; either version 3 of the License, or
7
7
  # any later version.
8
8
  #
9
9
  # This program is distributed in the hope that it will be useful,
10
10
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
12
+ # GNU Affero General Public License for more details.
13
13
  #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
14
+ # You should have received a copy of the GNU Affero General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
16
 
18
17
  class FeedObserver < ActiveRecord::Observer
19
18
 
@@ -24,4 +23,4 @@ class FeedObserver < ActiveRecord::Observer
24
23
  FileUtils.rm_r(Dir.glob(cache_dir+"/report/#{record.reported_by}")) rescue Errno::ENOENT
25
24
  end
26
25
 
27
- end
26
+ end
@@ -2,18 +2,17 @@
2
2
  # Copyright (C) 2006-2008 Thiago Arrais
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or modify
5
- # it under the terms of the GNU General Public License as published by
6
- # the Free Software Foundation; either version 2 of the License, or
5
+ # it under the terms of the GNU Affero General Public License as published by
6
+ # the Free Software Foundation; either version 3 of the License, or
7
7
  # any later version.
8
8
  #
9
9
  # This program is distributed in the hope that it will be useful,
10
10
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
12
+ # GNU Affero General Public License for more details.
13
13
  #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
14
+ # You should have received a copy of the GNU Affero General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
16
 
18
17
  class Headline < ActiveRecord::Base
19
18