radiant-forum-extension 2.1.6 → 3.0.0.rc3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. data/README.md +20 -16
  2. data/Rakefile +0 -16
  3. data/app/controllers/forum_base_controller.rb +32 -10
  4. data/app/controllers/posts_controller.rb +37 -14
  5. data/app/helpers/forum_helper.rb +23 -16
  6. data/app/models/forum.rb +11 -7
  7. data/app/models/post.rb +53 -14
  8. data/app/models/post_attachment.rb +1 -1
  9. data/app/models/topic.rb +21 -8
  10. data/app/views/admin/dashboard/_forum_dashboard.html.haml +51 -0
  11. data/app/views/admin/forums/_form.html.haml +12 -0
  12. data/app/views/admin/forums/edit.html.haml +1 -1
  13. data/app/views/admin/forums/index.html.haml +16 -20
  14. data/app/views/admin/posts/_form.html.haml +2 -2
  15. data/app/views/admin/posts/edit.html.haml +1 -1
  16. data/app/views/admin/posts/index.html.haml +5 -5
  17. data/app/views/admin/reader_configuration/_edit_forum.html.haml +6 -0
  18. data/app/views/admin/reader_configuration/_forum.html.haml +5 -1
  19. data/app/views/admin/topics/_form.html.haml +3 -5
  20. data/app/views/admin/topics/edit.html.haml +1 -1
  21. data/app/views/admin/topics/index.html.haml +5 -5
  22. data/app/views/forums/_forum.html.haml +6 -5
  23. data/app/views/forums/_latest.html.haml +14 -12
  24. data/app/views/forums/_statistics.html.haml +4 -4
  25. data/app/views/forums/index.html.haml +8 -10
  26. data/app/views/forums/index.rss.builder +2 -2
  27. data/app/views/forums/show.html.haml +12 -15
  28. data/app/views/pages/_add_comment.html.haml +9 -8
  29. data/app/views/pages/_comments.html.haml +3 -3
  30. data/app/views/posts/_attachments.html.haml +1 -1
  31. data/app/views/posts/_confirm_delete.html.haml +7 -2
  32. data/app/views/posts/_context.html.haml +5 -5
  33. data/app/views/posts/_edit_links.html.haml +4 -4
  34. data/app/views/posts/_form.html.haml +15 -12
  35. data/app/views/posts/_ineditable.html.haml +7 -0
  36. data/app/views/posts/_latest.html.haml +3 -8
  37. data/app/views/posts/_minimal.html.haml +7 -0
  38. data/app/views/posts/_post.html.haml +20 -17
  39. data/app/views/posts/_post.rss.builder +2 -2
  40. data/app/views/posts/_search_form.html.haml +13 -13
  41. data/app/views/posts/_search_results.html.haml +15 -0
  42. data/app/views/posts/_search_summary.html.haml +13 -0
  43. data/app/views/posts/_uploader.html.haml +1 -1
  44. data/app/views/posts/edit.html.haml +22 -21
  45. data/app/views/posts/index.html.haml +12 -19
  46. data/app/views/posts/index.rss.builder +6 -6
  47. data/app/views/posts/new.html.haml +19 -22
  48. data/app/views/posts/remove.html.haml +15 -15
  49. data/app/views/posts/show.html.haml +16 -10
  50. data/app/views/readers/_forum_messages.html.haml +9 -6
  51. data/app/views/readers/_messages_summary.html.haml +1 -1
  52. data/app/views/shared/_standard_forum_parts.html.haml +41 -0
  53. data/app/views/topics/_busiest.html.haml +9 -8
  54. data/app/views/topics/_context.html.haml +11 -8
  55. data/app/views/topics/_latest.html.haml +2 -2
  56. data/app/views/topics/_locked.html.haml +1 -1
  57. data/app/views/topics/_minimal.html.haml +2 -2
  58. data/app/views/topics/_replies.html.haml +4 -3
  59. data/app/views/topics/_reply.html.haml +13 -8
  60. data/app/views/topics/_topic.html.haml +5 -9
  61. data/app/views/topics/_topic.rss.builder +1 -1
  62. data/app/views/topics/index.html.haml +14 -10
  63. data/app/views/topics/index.rss.builder +2 -2
  64. data/app/views/topics/show.html.haml +20 -19
  65. data/app/views/topics/show.rss.builder +3 -3
  66. data/config/initializers/radiant_config.rb +4 -1
  67. data/config/locales/en.yml +202 -178
  68. data/db/migrate/002_pages_commentable.rb +1 -2
  69. data/db/migrate/004_sample_layout.rb +38 -15
  70. data/db/migrate/20110111080550_detach_observer.rb +4 -4
  71. data/db/migrate/20110613112823_search_text.rb +9 -0
  72. data/db/migrate/20110613130230_tidy_up.rb +27 -0
  73. data/db/migrate/20110630083446_page_replied_at.rb +11 -0
  74. data/forum_extension.rb +13 -11
  75. data/lib/commentable_model.rb +13 -9
  76. data/lib/forum_admin_ui.rb +6 -6
  77. data/lib/forum_page.rb +5 -3
  78. data/lib/forum_reader.rb +7 -1
  79. data/lib/forum_reader_sessions_controller.rb +2 -3
  80. data/lib/forum_tags.rb +126 -11
  81. data/lib/radiant-forum-extension.rb +8 -0
  82. data/public/cleditor/images/buttons.gif +0 -0
  83. data/public/cleditor/images/icons/1.gif +0 -0
  84. data/public/cleditor/images/icons/10.gif +0 -0
  85. data/public/cleditor/images/icons/11.gif +0 -0
  86. data/public/cleditor/images/icons/12.gif +0 -0
  87. data/public/cleditor/images/icons/2.gif +0 -0
  88. data/public/cleditor/images/icons/3.gif +0 -0
  89. data/public/cleditor/images/icons/4.gif +0 -0
  90. data/public/cleditor/images/icons/5.gif +0 -0
  91. data/public/cleditor/images/icons/6.gif +0 -0
  92. data/public/cleditor/images/icons/7.gif +0 -0
  93. data/public/cleditor/images/icons/8.gif +0 -0
  94. data/public/cleditor/images/icons/9.gif +0 -0
  95. data/public/cleditor/images/icons/icons.gif +0 -0
  96. data/public/cleditor/images/toolbar.gif +0 -0
  97. data/public/cleditor/jquery.cleditor.css +24 -0
  98. data/public/cleditor/jquery.cleditor.icon.js +65 -0
  99. data/public/cleditor/jquery.cleditor.js +1132 -0
  100. data/public/cleditor/jquery.cleditor.xhtml.js +230 -0
  101. data/public/javascripts/forum.js +146 -107
  102. data/public/stylesheets/sass/forum.sass +94 -58
  103. data/radiant-forum-extension.gemspec +25 -276
  104. data/spec/controllers/forums_controller_spec.rb +0 -7
  105. data/spec/controllers/posts_controller_spec.rb +20 -37
  106. data/spec/controllers/topics_controller_spec.rb +1 -7
  107. data/spec/datasets/forums_dataset.rb +38 -40
  108. data/spec/lib/commentable_model_spec.rb +26 -38
  109. data/spec/lib/forum_reader_spec.rb +0 -4
  110. data/spec/models/forum_spec.rb +46 -16
  111. data/spec/models/post_spec.rb +10 -6
  112. data/spec/models/topic_spec.rb +26 -17
  113. data/spec/spec_helper.rb +1 -0
  114. metadata +66 -99
  115. data/VERSION +0 -1
  116. data/app/views/forums/_standard_parts.html.haml +0 -59
  117. data/lib/sanitize/config/forum.rb +0 -49
  118. data/public/javascripts/gallery.js +0 -275
  119. data/public/punymce/blank.htm +0 -1
  120. data/public/punymce/css/content.css +0 -4
  121. data/public/punymce/css/editor.css +0 -58
  122. data/public/punymce/i18n/sv.js +0 -28
  123. data/public/punymce/img/icons.gif +0 -0
  124. data/public/punymce/img/icons_uncompressed.png +0 -0
  125. data/public/punymce/plugins/bbcode.js +0 -1
  126. data/public/punymce/plugins/bbcode_src.js +0 -50
  127. data/public/punymce/plugins/editsource/css/editor.css +0 -3
  128. data/public/punymce/plugins/editsource/editsource.js +0 -1
  129. data/public/punymce/plugins/editsource/editsource_src.js +0 -81
  130. data/public/punymce/plugins/editsource/img/icons.gif +0 -0
  131. data/public/punymce/plugins/emoticons/css/content.css +0 -13
  132. data/public/punymce/plugins/emoticons/css/editor.css +0 -17
  133. data/public/punymce/plugins/emoticons/emoticons.js +0 -1
  134. data/public/punymce/plugins/emoticons/emoticons_src.js +0 -303
  135. data/public/punymce/plugins/emoticons/img/emoticons.gif +0 -0
  136. data/public/punymce/plugins/emoticons/img/emoticons.png +0 -0
  137. data/public/punymce/plugins/emoticons/img/trans.gif +0 -0
  138. data/public/punymce/plugins/entities.js +0 -1
  139. data/public/punymce/plugins/entities_src.js +0 -37
  140. data/public/punymce/plugins/forceblocks.js +0 -1
  141. data/public/punymce/plugins/forceblocks_src.js +0 -465
  142. data/public/punymce/plugins/forcenl.js +0 -1
  143. data/public/punymce/plugins/forcenl_src.js +0 -26
  144. data/public/punymce/plugins/image/css/editor.css +0 -1
  145. data/public/punymce/plugins/image/image.js +0 -1
  146. data/public/punymce/plugins/image/image_src.js +0 -30
  147. data/public/punymce/plugins/image/img/icons.gif +0 -0
  148. data/public/punymce/plugins/link/css/editor.css +0 -2
  149. data/public/punymce/plugins/link/img/icons.gif +0 -0
  150. data/public/punymce/plugins/link/link.js +0 -1
  151. data/public/punymce/plugins/link/link_src.js +0 -36
  152. data/public/punymce/plugins/paste.js +0 -1
  153. data/public/punymce/plugins/paste_src.js +0 -169
  154. data/public/punymce/plugins/protect.js +0 -1
  155. data/public/punymce/plugins/protect_src.js +0 -30
  156. data/public/punymce/plugins/safari2x.js +0 -1
  157. data/public/punymce/plugins/safari2x_src.js +0 -284
  158. data/public/punymce/plugins/tabfocus.js +0 -1
  159. data/public/punymce/plugins/tabfocus_src.js +0 -45
  160. data/public/punymce/plugins/textcolor/css/editor.css +0 -7
  161. data/public/punymce/plugins/textcolor/img/icons.gif +0 -0
  162. data/public/punymce/plugins/textcolor/textcolor.js +0 -1
  163. data/public/punymce/plugins/textcolor/textcolor_src.js +0 -73
  164. data/public/punymce/puny_mce.js +0 -1
  165. data/public/punymce/puny_mce_full.js +0 -1
  166. data/public/punymce/puny_mce_src.js +0 -1460
@@ -3,24 +3,20 @@
3
3
  %div{:id => topic.dom_id}
4
4
  .post
5
5
  .wrapper
6
- .speaker
7
- = standard_gravatar_for(post.reader, forum_topic_url(topic.forum, topic))
6
+ = standard_gravatar_for(post.reader, topic_url(topic))
8
7
  .post_header
9
8
  %h2
10
- = link_to topic.name, forum_topic_url(topic.forum, topic)
9
+ = link_to_topic(topic)
11
10
  = feed_link(topic_path(topic, :format => :rss))
12
11
 
13
- %p.context
14
- = render :partial => "topics/context", :locals => {:topic => topic}
15
- = render :partial => 'posts/edit_links', :locals => {:post => post}
12
+ = render :partial => "topics/context", :locals => {:topic => topic}
16
13
 
17
14
  .post_body
18
- = truncate_and_textilize(post.body, 100)
15
+ = truncate_words(scrub_html(post.body), 24)
19
16
  = render :partial => 'posts/attachments', :locals => {:post => post}
20
17
 
21
18
  - if topic.has_replies?
22
19
  .post_replies
23
- %p.voices
24
- = render :partial => 'topics/voices', :locals => {:topic => topic}
25
20
  %p.replies
21
+ = render :partial => 'topics/voices', :locals => {:topic => topic}
26
22
  = render :partial => 'topics/replies', :locals => {:topic => topic}
@@ -5,5 +5,5 @@ xm.item do
5
5
  xm.pubDate topic.created_at.to_s(:rfc822)
6
6
  xm.guid [ActionController::Base.session_options[:session_key], topic.forum_id.to_s, topic.id.to_s].join(":"), "isPermaLink" => "false"
7
7
  xm.author h(topic.reader.name)
8
- xm.link forum_topic_url(topic.forum, topic)
8
+ xm.link topic_url(topic)
9
9
  end
@@ -1,27 +1,24 @@
1
- = render :partial => 'forums/standard_parts'
2
-
3
1
  - content_for :messages do
4
2
  - if @topics.empty?
5
3
  %p
6
- = t('no_topics')
4
+ = t('forum_extension.no_topics')
7
5
  - else
8
6
  = render :partial => 'topics/topic', :collection => @topics
9
7
 
10
8
  - content_for :sidebar do
11
- = render :partial => 'posts/search_form', :locals => {:minimal => true}
12
9
  = render :partial => 'forums/latest'
13
10
  = render :partial => 'topics/busiest'
14
11
 
15
12
  - content_for :pagination do
16
- = pagination_and_summary_for(@topics, t('topics'))
13
+ = pagination_and_summary_for(@topics, t('forum_extension.topics'))
17
14
 
18
15
  - content_for :breadcrumbs do
19
- = link_to t('forum').titlecase, topics_url
20
- = t('separator')
16
+ = link_to t('forum_extension.forum').titlecase, topics_url
17
+ = t('reader_extension.separator')
21
18
  = yield :title
22
19
 
23
20
  - content_for :title do
24
- = t('topics_heading')
21
+ = t('forum_extension.topics_heading')
25
22
 
26
23
  - content_for :feedurl do
27
24
  = topics_url(:format => :rss)
@@ -29,14 +26,21 @@
29
26
  - content_for :feedlink do
30
27
  = feed_link(topics_url(:format => :rss))
31
28
 
29
+ - content_for :head do
30
+ %h1
31
+ = yield :title
32
+
32
33
  - content_for :introduction do
33
34
  %p
34
- =t('topics_introduction')
35
+ =t('forum_extension.topics_introduction')
36
+
37
+ = render :partial => 'shared/standard_forum_parts'
35
38
 
36
- #forum
39
+ .forum
37
40
  = yield :pagination if @topics.previous_page
38
41
  = yield :messages
39
42
  = yield :pagination if @topics.next_page
43
+ = yield :newtopic
40
44
 
41
45
 
42
46
 
@@ -4,8 +4,8 @@ xml.channel do
4
4
  :rel => 'self', :type => 'application/rss+xml'
5
5
  }
6
6
 
7
- xml.title "#{@site_title} : #{t('latest_topics')}"
8
- xml.description t("latest_topics_description")
7
+ xml.title "#{@site_title} : #{t('forum_extension.latest_topics')}"
8
+ xml.description t("forum_extension.latest_topics_description")
9
9
  xml.link topics_url
10
10
  xml.language I18n.locale.to_s
11
11
  xml.ttl "60"
@@ -1,15 +1,12 @@
1
- = render :partial => 'forums/standard_parts'
2
-
3
- - content_for :newtopic do
4
- .newmessage
5
- = link_to t('new_topic_here'), new_post_url(:forum_id => @forum.id)
6
-
7
1
  - content_for :pagination do
8
- = pagination_and_summary_for(@posts, t('post'))
2
+ = pagination_and_summary_for(@posts, t('forum_extension.post'))
9
3
 
10
4
  - content_for :title do
11
5
  = @topic.name
12
6
 
7
+ - content_for :context do
8
+ = render :partial => 'topics/context'
9
+
13
10
  - content_for :person do
14
11
  = standard_gravatar_for(@topic.reader)
15
12
 
@@ -17,7 +14,6 @@
17
14
  = render :partial => 'posts/post', :locals => {:post => @topic.posts.first, :headless => true, :with_context => true}
18
15
 
19
16
  - content_for :sidebar do
20
- = render :partial => 'posts/search_form', :locals => {:minimal => true}
21
17
  = render :partial => 'topics/latest'
22
18
 
23
19
  - content_for :feedurl do
@@ -27,16 +23,22 @@
27
23
  = feed_link(topic_path(@topic, :format => :rss))
28
24
 
29
25
  - content_for :parent do
30
- = link_to @topic.forum.name + ':', forum_url(@topic.forum)
26
+ - if @topic.forum
27
+ = link_to @topic.forum.name + ':', forum_url(@topic.forum)
31
28
 
32
29
  - content_for :breadhead do
33
- = link_to t('forum').titlecase + t('separator'), topics_url
34
- = yield :parent
30
+ %span.breadhead
31
+ = link_to t('forum_extension.forum').titlecase, topics_url
32
+ = t('reader_extension.separator')
33
+ = yield :parent
35
34
 
36
35
  - content_for :breadcrumbs do
37
- = yield :breadhead
38
- = t('separator')
39
- = yield :title
36
+ %p.breadcrumbs
37
+ = link_to t('forum_extension.forum').titlecase, topics_url
38
+ = t('reader_extension.separator')
39
+ = yield :parent
40
+ = t('reader_extension.separator')
41
+ = yield :title
40
42
 
41
43
  - content_for :messages do
42
44
  = yield :pagination if @posts.previous_page
@@ -44,13 +46,12 @@
44
46
  = yield :pagination if @posts.next_page
45
47
 
46
48
  - content_for :reply_form do
47
- .new_post
48
- .wrapper
49
- %p.add_reply
50
- = link_to t('add_reply'), new_topic_post_url(@topic), :class => 'remote autoload'
49
+ = render :partial => 'topics/reply'
51
50
 
51
+ = render :partial => 'shared/standard_forum_parts'
52
52
 
53
- #forum
53
+ .forum
54
54
  = yield :first_post
55
55
  = yield :messages
56
56
  = yield :reply_form unless @posts.next_page
57
+
@@ -1,12 +1,12 @@
1
1
  xml.channel do
2
2
  xml.atom :link, nil, {
3
- :href => forum_topic_url(@topic.forum, @topic, :format => 'rss'),
3
+ :href => topic_url(@topic, :format => 'rss'),
4
4
  :rel => 'self', :type => 'application/rss+xml'
5
5
  }
6
6
 
7
7
  xml.title "#{@site_title} : #{@topic.name}"
8
- xml.description "#{@posts.length} #{t('posts')}, #{t('most_recently')} #{t('from_reader', :name => @posts.last.reader.name)} #{t('on_date', :date => friendly_date(@posts.last.created_at))}"
9
- xml.link forum_topic_url(@topic.forum, @topic)
8
+ xml.description "#{@posts.length} #{t('forum_extension.posts')}, #{t('forum_extension.most_recently')} #{t('forum_extension.from_reader', :name => @posts.last.reader.name)} #{t('forum_extension.on_date', :date => friendly_date(@posts.last.created_at))}"
9
+ xml.link topic_url(@topic)
10
10
  xml.language I18n.locale.to_s
11
11
  xml.ttl "60"
12
12
 
@@ -1,8 +1,11 @@
1
1
  Radiant.config do |config|
2
2
  config.namespace('forum') do |forum|
3
3
  forum.define 'public?', :default => true
4
+ forum.define 'cached?', :default => true
5
+ forum.define 'cache_duration', :default => 60, :type => :integer, :units => "minutes"
4
6
  forum.define 'toolbar?', :default => true
5
- forum.define 'editable_period', :type => :integer, :default => 15, :units => "minutes"
7
+ forum.define 'editable_period', :type => :integer, :default => 30, :units => "minutes"
8
+ forum.define 'offer_rss?', :default => false
6
9
  forum.define 'allow_page_comments?', :default => true
7
10
  forum.define 'allow_attachments?', :default => true
8
11
  forum.define 'attachment.content_types'
@@ -1,29 +1,13 @@
1
1
  en:
2
- a_reply_to: "A reply to"
3
- add_post: "Add a %{message_type}"
4
- add_comment: "Add a comment"
5
- add_reply: "Add a reply"
6
- ago: "ago"
7
- all: "all"
8
- anyone: "anyone"
9
- anywhere: "anywhere"
10
- attached: "attached"
11
- attach_file: "attach a file"
12
- author: "author"
13
- begun_on: "begun on %{date}"
14
- busy_topics: "Busy topics"
15
- busy_readers: "Busiest people"
16
- by: "by"
17
- by_content_and_author: "by content, author or category."
18
- comment: "comment"
19
- comment_count:
20
- zero: "No comments yet"
21
- one: "One comment"
22
- other: "%{count} comments."
23
- comment_on_page: "a comment added to the page"
24
- comments_closed: "Comments closed."
25
- comments_on: "Comments on"
26
- comments: "comments"
2
+ activerecord:
3
+ attributes:
4
+ post:
5
+ body: "Your message"
6
+ topic:
7
+ forum_id: "File in category"
8
+ name: "Discussion title"
9
+ sticky: "Sticky"
10
+ locked: "Locked"
27
11
  config:
28
12
  forum:
29
13
  allow_attachments?: "Posts have attachments?"
@@ -34,165 +18,205 @@ en:
34
18
  commentable_period: "Pages commentable for"
35
19
  editable_period: "Posts editable for"
36
20
  layout: "Forum layout"
21
+ offer_rss?: "Show RSS links"
37
22
  public?: "Forum public?"
38
- confirm_removal_of: "Are you sure you want to delete this post from %{author}? There's no way to get it back if you change your mind."
39
- confirm_remove_forum: "Delete forum?"
40
- confirm_remove_post: "Delete post?"
41
- confirm_remove_topic: "Delete topic?"
42
- containing: "containing the phrase"
43
- definitely_remove_post: "Yes: delete it"
44
- edit_forum: "Edit forum"
45
- edit_minimal: "e"
46
- edit_post: "Edit post"
47
- edit_topic: "Edit topic"
48
- edit_your_post: "edit your post"
49
- error:
50
- message_empty: "Sorry: message can't be empty"
51
- no_file: "You must choose a file to upload!"
52
- filed_in: "under %{name}"
53
- for_comments: "for page comments"
23
+ toolbar?: "Enable editing toolbar"
54
24
  forum: "Forum"
55
- forums: "Discussion categories"
56
- forum_configuration: "Forum settings"
57
- forum_messages: "Forum messages"
58
- forum_search: "Forum Search"
59
- forum_show_introduction: ""
60
- forums_heading: "Forum categories"
61
- forums_introduction: 'These are the broad filing areas we use to organise the forum. You can also see lists of <a href="/forum/topics">all the latest topics</a> or <a href="/forum/posts">posts</a> across all these categories.'
62
- from_reader: "from %{name}"
63
- if_you_not: "If you're not %{name}, please"
64
- in: "in"
65
- in_forum: "filed under"
66
- in_reply_to: "in reply to"
67
- label:
68
- post:
69
- body: "Your message"
70
- topic:
71
- forum: "File in category"
72
- name: "Discussion title"
73
- sticky: "Sticky"
74
- locked: "Locked"
75
- last_seen: "last here"
76
- latest_activity: "latest activity"
77
- latest_discussion: "Latest topics"
78
- latest_posts: "Latest posts"
79
- latest_posts_description: "Topics and replies from across the forum in descending date order."
80
- latest_topics: "Latest topics"
81
- latest_topics_description: "Topics most recently posted or replied to."
82
- locked: "locked"
83
- matching: "matching"
84
- messages_from_reader: "Messages from %{name}"
85
- most_recently: "most recently"
86
- navigation:
25
+ topics: "Topics"
26
+ forums: "Categories"
27
+ posts: "Posts"
28
+ settings: "Settings"
29
+ forum_extension:
30
+ a_reply_to: "A reply to"
31
+ add_post: "Add a %{message_type}"
32
+ add_comment: "Add a comment"
33
+ add_reply: "Add a reply"
34
+ administer_by_browsing: 'The easiest way to administer the forum is by <a href="/forum">browsing around it.</a>'
35
+ ago: "ago"
36
+ all: "all"
37
+ anyone: "anyone"
38
+ anywhere: "anywhere"
39
+ attached: "attached"
40
+ attach_file: "attach a file"
41
+ author: "author"
42
+ begun_on: "begun on %{date}"
43
+ body: "body"
44
+ by: "by"
45
+ by_content_and_author: "by content, author or category."
46
+ comment: "comment"
47
+ comment_count:
48
+ zero: "No comments yet"
49
+ one: "One comment"
50
+ other: "%{count} comments."
51
+ comment_count_from:
52
+ zero: "No comments."
53
+ one: "One coment, from "
54
+ other: "%{count} comments, most recently from "
55
+ comment_on_page: "a comment added to the page"
56
+ comments_closed: "Comments closed."
57
+ comments_on: "Comments on"
58
+ comments: "comments"
59
+ confirm_removal_of_comment: "Are you sure you want to delete this comment from %{author}? There's no way to get it back if you change your mind."
60
+ confirm_removal_of_post: "Are you sure you want to delete this post from %{author}? There's no way to get it back if you change your mind."
61
+ confirm_removal_of_topic: "Are you sure you want to delete this topic and all of its replies? There's no way to get any of it back if you change your mind."
62
+ confirm_remove_forum: "Delete forum?"
63
+ confirm_remove_post: "Delete post?"
64
+ confirm_remove_topic: "Delete topic?"
65
+ containing: "containing the phrase"
66
+ definitely_remove_post: "Yes: delete it"
67
+ description: Description
68
+ edit_forum: "Edit forum"
69
+ edit_minimal: "e"
70
+ edit_post: "Edit post"
71
+ edit_topic: "Edit topic"
72
+ edit_your_post: "edit your post"
73
+ error:
74
+ message_empty: "Sorry: message can't be empty"
75
+ no_file: "You must choose a file to upload!"
76
+ filed_in: "under %{name}"
77
+ for_comments: "for page comments"
87
78
  forum: "Forum"
88
- forum_help: "Help"
89
- forums: "Categories"
90
- readers: "People"
91
- new_topic: "New topic"
79
+ forums: "Discussion categories"
80
+ forum_configuration: "Forum settings"
81
+ forum_messages: "Forum messages from %{name}"
82
+ forum_search: "Forum Search"
83
+ forum_show_introduction: ""
84
+ forums_heading: "Forum categories"
85
+ forums_introduction: 'These are the broad filing areas we use to organise the forum. You can also see lists of <a href="/forum/topics">all the latest topics</a> or <a href="/forum/posts">posts</a> across all these categories.'
86
+ from: "from"
87
+ from_reader: "from %{name}"
88
+ if_you_not: "If you're not %{name}, please"
89
+ in: "in"
90
+ in_forum: "filed under"
91
+ in_reply_to: "in reply to"
92
+ last_seen: "last here"
93
+ latest_activity: "latest activity"
94
+ latest_forum_activity: "Latest in the forum"
95
+ latest_discussion: "Latest topics"
96
+ latest_posts: "Latest posts"
97
+ latest_posts_description: "Topics and replies from across the forum in descending date order."
98
+ latest_topics: "Latest topics"
99
+ latest_topics_description: "Topics most recently posted or replied to."
100
+ locked: "locked"
101
+ matching: "matching"
102
+ messages_from_reader: "Messages from %{name}"
103
+ most_recently: "most recently"
104
+ navigation:
105
+ forum: "Forum"
106
+ forum_help: "Help"
107
+ forums: "Categories"
108
+ readers: "People"
109
+ new_topic: "New topic"
110
+ search: "Search"
111
+ topics: "Latest"
112
+ new_comment: "Add a comment"
113
+ new_forum: "New forum"
114
+ new_reply_to: "New reply to"
115
+ new_reply_from: "New reply from"
116
+ new_topic: "Start a new discussion"
117
+ new_topic_button: "Submit topic"
118
+ new_topic_heading: "Start a new topic"
119
+ new_topic_introduction: ""
120
+ new_topic_here: "start a new<br />topic here"
121
+ new_topic_started: "New topic started"
122
+ no_description_provided: "No description provided."
123
+ no_forums: "No discussion categories defined here yet."
124
+ no_messages_yet: "No messages yet"
125
+ no_posts: "The forum is empty."
126
+ no_posts_found: "No messages found."
127
+ no_search_results: "Sorry: no messages match your criteria. Please use the form below to broaden your search."
128
+ no_topics: "No talk here yet."
129
+ notice:
130
+ topic_deleted: "Topic '%{name}' was deleted."
131
+ post_deleted: "Post deleted."
132
+ now_has: "now has"
133
+ of: "of"
134
+ on_date: "on %{date}"
135
+ pages_with_latest_comments: "Latest page comments"
136
+ page_locked: "Sorry: comments are not allowed on this page"
137
+ post: "comment"
138
+ post_body: "Post body"
139
+ post_count:
140
+ zero: ""
141
+ one: "One reply"
142
+ other: "%{count} replies"
143
+ post_post: "Post %{message_type}"
144
+ post_removed: "Post removed"
145
+ posted: "posted"
146
+ posted_and_updated_on: "posted on %{posted} and updated on %{updated}"
147
+ posted_on: "posted"
148
+ posted_by: "posted by"
149
+ post: "message"
150
+ posts: "Messages"
151
+ posts_found:
152
+ zero: "Nothing found"
153
+ one: "One message found"
154
+ other: "%{count} messages found"
155
+ posts_heading: "Search the forum"
156
+ posts_introduction: 'This begins as a full list of all the posts in the forum. Add criteria below to cut down the list to specific subjects and speakers.'
157
+ really_remove_post: "Are you sure you want to delete this comment?"
158
+ recent_topics: "Recent topics"
159
+ remove_minimal: "x"
160
+ remove_post: "delete comment"
161
+ replied_on: "replied on %{date}"
162
+ reply_from: "reply from"
163
+ reply_posted: "reply posted"
164
+ reply_to: "Reply to"
165
+ reply: "reply"
166
+ rss: "RSS"
167
+ rss_feed: "RSS feed"
168
+ save_changes: "Save changes"
169
+ save_post: "Save post"
92
170
  search: "Search"
93
- topics: "Latest"
94
- new_forum: "New forum"
95
- new_reply_to: "New reply to"
96
- new_reply_from: "New reply from"
97
- new_topic: "Start a new discussion"
98
- new_topic_button: "Submit topic"
99
- new_topic_heading: "Start a new topic"
100
- new_topic_introduction: ""
101
- new_topic_here: "start a new<br />topic here"
102
- new_topic_started: "New topic started"
103
- no_description_provided: "No description provided."
104
- no_forums: "No discussion categories defined here yet."
105
- no_messages_yet: "No messages yet"
106
- no_posts: "The forum is empty."
107
- no_posts_found: "No messages found."
108
- no_search_results: "Sorry: no messages match your criteria. Please use the form below to broaden your search."
109
- no_topics: "No talk here yet."
110
- notice:
111
- topic_deleted: "Topic '%{name}' was deleted."
112
- post_deleted: "Post deleted."
113
- now_has: "now has"
114
- of: "of"
115
- on_date: "on %{date}"
116
- page_locked: "Sorry: comments are not allowed on this page"
117
- post: "comment"
118
- post_body: "Post body"
119
- post_count_from:
120
- zero: ""
121
- one: "One reply, from"
122
- other: "%{count} replies, most recently from"
123
- post_post: "Post %{message_type}"
124
- post_removed: "Post removed"
125
- posted: "posted"
126
- posted_and_updated_on: "posted on %{posted} and updated on %{updated}"
127
- posted_on: "posted"
128
- posted_by: "posted by"
129
- post: "message"
130
- posts: "Messages"
131
- posts_found:
132
- zero: "Nothing found"
133
- one: "One message found"
134
- other: "%{count} messages found"
135
- posts_heading: "Search the forum"
136
- posts_introduction: 'This begins as a full list of all the posts in the forum. Add criteria below to cut down the list to specific subjects and speakers.'
137
- really_remove_post: "Are you sure you want to delete this comment?"
138
- recent_topics: "Recent topics"
139
- remove_minimal: "x"
140
- remove_post: "delete comment"
141
- replied_on: "replied on %{date}"
142
- reply_from: "reply from"
143
- reply_posted: "reply posted"
144
- reply_to: "Reply to"
145
- reply: "reply"
146
- rss: "RSS"
147
- rss_feed: "RSS feed"
148
- save_changes: "Save changes"
149
- save_post: "Save post"
150
- search: "Search"
151
- search_feed: "Search Results Feed"
152
- search_form:
153
- forum_label: "In this discussion category"
154
- person_label: "From this person"
155
- minimal_query_label: "Forum search"
156
- query_label: "Search for this text"
157
- search_header: "Forum Search"
158
- search_introduction: "Please choose a search phrase and/or a person or discussion category."
159
- search_results: "Search Results"
160
- search_whole_forum: "search the whole forum"
161
- separator: ':'
162
- showing: "showing"
163
- sorry_locked: "Sorry: this topic is locked."
164
- start_topic: "Start a new conversation"
165
- started: "started"
166
- started_by: "Started by"
167
- started_topic_in: "started a new topic under"
168
- started_topic_on: "started a new topic on %{date}"
169
- sticky: "sticky"
171
+ search_feed: "Search Results Feed"
172
+ search_form:
173
+ forum_label: "In this discussion category"
174
+ person_label: "From this person"
175
+ minimal_query_label: "Forum search"
176
+ query_label: "Search for this text"
177
+ search_header: "Forum Search"
178
+ search_introduction: "Please choose a search phrase and/or a person or discussion category."
179
+ search_results: "Search Results"
180
+ search_whole_forum: "search the whole forum"
181
+ separator: ':'
182
+ showing: "showing"
183
+ sorry_cannot_edit: "Sorry: either you don't have the authority to edit this post, or its editable period has finished."
184
+ sorry_locked: "Sorry: this topic is locked."
185
+ start_topic: "Start a new conversation"
186
+ started: "started"
187
+ started_by: "Started by"
188
+ started_topic_in: "started a new topic under"
189
+ started_topic_on: "started a new topic on %{date}"
190
+ sticky: "sticky"
191
+ stopwords: "a about above across after afterwards again against all almost alone along already also although always am among amongst amoungst amount an and another any anyhow anyone anything anyway anywhere are around as at back be became because become becomes becoming been before beforehand behind being below beside besides between beyond bill both bottom but by call can cannot cant co computer con could couldnt cry de describe detail do done down due during each eg eight either eleven else elsewhere empty enough etc even ever every everyone everything everywhere except few fifteen fify fill find fire first five for former formerly forty found four from front full further get give go had has hasnt have he hence her here hereafter hereby herein hereupon hers herse” him himse” his how however hundred i ie if in inc indeed interest into is it its itse” keep last latter latterly least less ltd made many may me meanwhile might mill mine more moreover most mostly move much must my myse” name namely neither never nevertheless next nine no nobody none noone nor not nothing now nowhere of off often on once one only onto or other others otherwise our ours ourselves out over own part per perhaps please put rather re same see seem seemed seeming seems serious several she should show side since sincere six sixty so some somehow someone something sometime sometimes somewhere still such system take ten than that the their them themselves then thence there thereafter thereby therefore therein thereupon these they thick thin third this those though three through throughout thru thus to together too top toward towards twelve twenty two un under until up upon us very via was we well were what whatever when whence whenever where whereafter whereas whereby wherein whereupon wherever whether which while whither who whoever whole whom whose why will with within without would yet you your yours yourself yourselves"
192
+ time_remaining_to_edit: "You have %{time} left to "
193
+ to_comment: "To comment"
194
+ to_post: "To post messages"
195
+ to_start_topic: "To start a topic"
196
+ top_topics: "Top topics"
197
+ top_readers: "Top posters"
198
+ topic_count:
199
+ zero: "No discussion."
200
+ one: "One topic: "
201
+ other: "%{count} topics, most recently "
202
+ topic_show_introduction: ""
203
+ topic_removed: "Topic removed"
204
+ topics_and_posts: "Topics and messages"
205
+ to: "to"
206
+ to_add_post: "To add a %{message_type}"
207
+ topic: "topic"
208
+ topic_body: "Opening message"
209
+ topic_empty: "Topic empty!"
210
+ topic_name: "Topic name"
211
+ topics: "Topics"
212
+ topics_heading: "Latest topics"
213
+ topics_introduction: 'This is a list of all the discussions going on here, with the most recently updated first. You can also see a more organised list of <a href="/forum/forums">discussion categories</a> or <a href="/forum/posts">search</a> for particular posts and people.'
214
+ under: "under"
215
+ unknown_date: "unknown date"
170
216
  time:
171
217
  formats:
172
- recently: "%A at %l:%M%p"
218
+ recently: "on %A at %l:%M%p"
173
219
  standard: "on %B %e, %Y at %l:%M%p"
174
- this_year: "%B %e at %l:%M%p"
220
+ this_year: "on %B %e at %l:%M%p"
175
221
  today: "today at %l:%M%p"
176
222
  yesterday: "yesterday at %l:%M%p"
177
- time_remaining_to_edit: "You have %{time} left to "
178
- to_comment: "To comment"
179
- to_post: "To post messages"
180
- to_start_topic: "To start a topic"
181
- topic_count:
182
- zero: "No discussion."
183
- one: "One topic: "
184
- other: "%{count} topics, most recently "
185
- topic_show_introduction: ""
186
- topic_removed: "Topic removed"
187
- topics_and_posts: "Topics and messages"
188
- to: "to"
189
- to_add_post: "To add a %{message_type}"
190
- topic: "topic"
191
- topic_body: "Opening message"
192
- topic_empty: "Topic empty!"
193
- topic_name: "Topic name"
194
- topics: "Topics"
195
- topics_heading: "Latest topics"
196
- topics_introduction: 'This is a list of all the discussions going on here, with the most recently updated first. You can also see a more organised list of <a href="/forum/forums">discussion categories</a> or <a href="/forum/posts">search</a> for particular posts and people.'
197
- under: "under"
198
- unknown_date: "unknown date"
@@ -3,8 +3,7 @@ class PagesCommentable < ActiveRecord::Migration
3
3
  add_column :pages, :commentable, :boolean, :default => true
4
4
  add_column :pages, :comments_closed, :boolean, :default => false
5
5
  add_column :topics, :page_id, :integer
6
- add_index :topics, :page_id
7
-
6
+ add_index :topics, :page_id, :name => "index_topics_on_page_id"
8
7
  end
9
8
 
10
9
  def self.down