motiro 0.6.10 → 0.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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