dm_forum 4.2.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (185) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +23 -0
  3. data/README.md +33 -0
  4. data/Rakefile +30 -0
  5. data/app/assets/javascripts/dm_forum/admin.js +20 -0
  6. data/app/assets/javascripts/dm_forum/application.js +16 -0
  7. data/app/assets/javascripts/dm_forum/dm_forum.js +3 -0
  8. data/app/assets/stylesheets/dm_forum/admin.css +2 -0
  9. data/app/assets/stylesheets/dm_forum/application.css +12 -0
  10. data/app/controllers/dm_forum/admin/admin_controller.rb +13 -0
  11. data/app/controllers/dm_forum/admin/dashboard_controller.rb +12 -0
  12. data/app/controllers/dm_forum/admin/forum_categories_controller.rb +80 -0
  13. data/app/controllers/dm_forum/admin/forum_sites_controller.rb +40 -0
  14. data/app/controllers/dm_forum/admin/forums_controller.rb +113 -0
  15. data/app/controllers/dm_forum/application_controller.rb +25 -0
  16. data/app/controllers/dm_forum/forum_comments_controller.rb +88 -0
  17. data/app/controllers/dm_forum/forum_topics_controller.rb +93 -0
  18. data/app/controllers/dm_forum/forums_controller.rb +45 -0
  19. data/app/datatables/forum_user_datatable.rb +79 -0
  20. data/app/helpers/dm_forum/application_helper.rb +5 -0
  21. data/app/helpers/dm_forum/forum_helper.rb +109 -0
  22. data/app/mailers/forum_notification_mailer.rb +27 -0
  23. data/app/models/dm_forum/concerns/ability.rb +50 -0
  24. data/app/models/dm_forum/concerns/user.rb +37 -0
  25. data/app/models/dm_forum/permitted_params.rb +38 -0
  26. data/app/models/forum.rb +74 -0
  27. data/app/models/forum_category.rb +14 -0
  28. data/app/models/forum_comment.rb +93 -0
  29. data/app/models/forum_site.rb +27 -0
  30. data/app/models/forum_topic.rb +146 -0
  31. data/app/presenters/forum_comment_presenter.rb +8 -0
  32. data/app/presenters/forum_common_presenter.rb +31 -0
  33. data/app/presenters/forum_presenter.rb +14 -0
  34. data/app/views/dm_forum/admin/dashboard/_widget_forum_comments.html.erb +38 -0
  35. data/app/views/dm_forum/admin/dashboard/widget_forum_comments.js.erb +1 -0
  36. data/app/views/dm_forum/admin/forum_categories/_content_toolbar.html.erb +5 -0
  37. data/app/views/dm_forum/admin/forum_categories/_form.html.erb +18 -0
  38. data/app/views/dm_forum/admin/forum_categories/edit.html.erb +3 -0
  39. data/app/views/dm_forum/admin/forum_categories/index.html.erb +25 -0
  40. data/app/views/dm_forum/admin/forum_categories/new.html.erb +3 -0
  41. data/app/views/dm_forum/admin/forum_categories/show.html.erb +41 -0
  42. data/app/views/dm_forum/admin/forum_sites/_form.html.erb +18 -0
  43. data/app/views/dm_forum/admin/forum_sites/edit.html.erb +2 -0
  44. data/app/views/dm_forum/admin/forum_sites/show.html.erb +12 -0
  45. data/app/views/dm_forum/admin/forums/_content_toolbar.html.erb +5 -0
  46. data/app/views/dm_forum/admin/forums/_form.html.erb +24 -0
  47. data/app/views/dm_forum/admin/forums/edit.html.erb +2 -0
  48. data/app/views/dm_forum/admin/forums/new.html.erb +2 -0
  49. data/app/views/dm_forum/admin/forums/show.html.erb +68 -0
  50. data/app/views/dm_forum/forum_comments/_formatting.html.erb +12 -0
  51. data/app/views/dm_forum/forum_comments/edit.html.erb +15 -0
  52. data/app/views/dm_forum/forum_topics/_comment_item.html.erb +26 -0
  53. data/app/views/dm_forum/forum_topics/_comments_list.html.erb +63 -0
  54. data/app/views/dm_forum/forum_topics/_follow_button.html.erb +3 -0
  55. data/app/views/dm_forum/forum_topics/_form.html.erb +24 -0
  56. data/app/views/dm_forum/forum_topics/edit.html.erb +13 -0
  57. data/app/views/dm_forum/forum_topics/new.html.erb +13 -0
  58. data/app/views/dm_forum/forum_topics/show.html.erb +49 -0
  59. data/app/views/dm_forum/forum_topics/toggle_follow.js.coffee +5 -0
  60. data/app/views/dm_forum/forums/_category_side_list.html.erb +28 -0
  61. data/app/views/dm_forum/forums/_forum_header.html.erb +14 -0
  62. data/app/views/dm_forum/forums/_no_forums.html.erb +1 -0
  63. data/app/views/dm_forum/forums/_topics_list.html.erb +86 -0
  64. data/app/views/dm_forum/forums/categories.html.erb +32 -0
  65. data/app/views/dm_forum/forums/list.html.erb +10 -0
  66. data/app/views/dm_forum/forums/show.html.erb +39 -0
  67. data/app/views/layouts/email_templates/forum_notification.html.erb +15 -0
  68. data/app/views/layouts/email_templates/forum_notification.text.erb +16 -0
  69. data/config/initializers/dm_forum.rb +0 -0
  70. data/config/locales/fms.cs.yml +104 -0
  71. data/config/locales/fms.de.yml +104 -0
  72. data/config/locales/fms.en.yml +104 -0
  73. data/config/locales/fms.fi.yml +104 -0
  74. data/config/locales/fms.ja.yml +104 -0
  75. data/config/routes.rb +43 -0
  76. data/db/migrate/20130103151149_create_forums.rb +72 -0
  77. data/db/migrate/20130424125513_add_public_forum.rb +13 -0
  78. data/db/migrate/20130430084925_add_forum_category.rb +7 -0
  79. data/db/migrate/20140201112134_delete_monitorships.rb +17 -0
  80. data/db/migrate/20140303121325_add_requires_subscription_forum.rb +5 -0
  81. data/db/migrate/20140423113420_add_forum_owner.rb +6 -0
  82. data/db/migrate/20160821150125_index_foreign_keys_in_fms_forum_sites.rb +5 -0
  83. data/db/migrate/20160821150126_index_foreign_keys_in_fms_forum_topics.rb +9 -0
  84. data/db/migrate/20160821150127_index_foreign_keys_in_fms_forums.rb +7 -0
  85. data/lib/dm_forum/engine.rb +9 -0
  86. data/lib/dm_forum/version.rb +3 -0
  87. data/lib/dm_forum.rb +4 -0
  88. data/lib/tasks/dm_forum_tasks.rake +4 -0
  89. data/spec/dummy/README.rdoc +28 -0
  90. data/spec/dummy/Rakefile +6 -0
  91. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  92. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  93. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  94. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  95. data/spec/dummy/app/models/ability.rb +12 -0
  96. data/spec/dummy/app/models/user.rb +6 -0
  97. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  98. data/spec/dummy/bin/bundle +3 -0
  99. data/spec/dummy/bin/rails +4 -0
  100. data/spec/dummy/bin/rake +4 -0
  101. data/spec/dummy/config/application.rb +26 -0
  102. data/spec/dummy/config/boot.rb +5 -0
  103. data/spec/dummy/config/database.yml +25 -0
  104. data/spec/dummy/config/environment.rb +5 -0
  105. data/spec/dummy/config/environments/development.rb +37 -0
  106. data/spec/dummy/config/environments/production.rb +82 -0
  107. data/spec/dummy/config/environments/test.rb +39 -0
  108. data/spec/dummy/config/initializers/assets.rb +8 -0
  109. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  110. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  111. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  112. data/spec/dummy/config/initializers/inflections.rb +16 -0
  113. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  114. data/spec/dummy/config/initializers/session_store.rb +3 -0
  115. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  116. data/spec/dummy/config/locales/en.yml +23 -0
  117. data/spec/dummy/config/routes.rb +17 -0
  118. data/spec/dummy/config/secrets.yml +22 -0
  119. data/spec/dummy/config.ru +4 -0
  120. data/spec/dummy/db/development.sqlite3 +0 -0
  121. data/spec/dummy/db/migrate/20141114170927_add_globalize_countries.dm_core.rb +50 -0
  122. data/spec/dummy/db/migrate/20141114170928_devise_create_users.dm_core.rb +46 -0
  123. data/spec/dummy/db/migrate/20141114170929_add_user_fields.dm_core.rb +14 -0
  124. data/spec/dummy/db/migrate/20141114170930_rolify_create_roles.dm_core.rb +20 -0
  125. data/spec/dummy/db/migrate/20141114170931_add_last_access.dm_core.rb +10 -0
  126. data/spec/dummy/db/migrate/20141114170932_create_versions.dm_core.rb +19 -0
  127. data/spec/dummy/db/migrate/20141114170933_add_object_changes_column_to_versions.dm_core.rb +12 -0
  128. data/spec/dummy/db/migrate/20141114170934_create_dm_core_accounts.dm_core.rb +13 -0
  129. data/spec/dummy/db/migrate/20141114170935_add_account_to_users.dm_core.rb +9 -0
  130. data/spec/dummy/db/migrate/20141114170936_create_preferences.dm_core.rb +13 -0
  131. data/spec/dummy/db/migrate/20141114170937_create_comments.dm_core.rb +22 -0
  132. data/spec/dummy/db/migrate/20141114170938_add_activity.dm_core.rb +21 -0
  133. data/spec/dummy/db/migrate/20141114170939_add_type_to_comments.dm_core.rb +9 -0
  134. data/spec/dummy/db/migrate/20141114170940_add_category.dm_core.rb +28 -0
  135. data/spec/dummy/db/migrate/20141114170941_create_email_table.dm_core.rb +26 -0
  136. data/spec/dummy/db/migrate/20141114170942_add_user_profile.dm_core.rb +46 -0
  137. data/spec/dummy/db/migrate/20141114170943_add_profile_email.dm_core.rb +14 -0
  138. data/spec/dummy/db/migrate/20141114170944_create_payment_history.dm_core.rb +37 -0
  139. data/spec/dummy/db/migrate/20141114170945_change_anchor_field.dm_core.rb +10 -0
  140. data/spec/dummy/db/migrate/20141114170946_create_user_site_profile.dm_core.rb +27 -0
  141. data/spec/dummy/db/migrate/20141114170947_add_avatar.dm_core.rb +12 -0
  142. data/spec/dummy/db/migrate/20141114170948_add_notify_to_payment_history.dm_core.rb +8 -0
  143. data/spec/dummy/db/migrate/20141114170949_acts_as_votable_migration.dm_core.rb +28 -0
  144. data/spec/dummy/db/migrate/20141114170950_add_user_site_profile_uuid.dm_core.rb +19 -0
  145. data/spec/dummy/db/migrate/20141114170951_add_invoice_id.dm_core.rb +7 -0
  146. data/spec/dummy/db/migrate/20141114170952_acts_as_follower_migration.dm_core.rb +18 -0
  147. data/spec/dummy/db/migrate/20141114170953_rename_invoice_id.dm_core.rb +12 -0
  148. data/spec/dummy/db/migrate/20141114170954_add_core_addresses.dm_core.rb +18 -0
  149. data/spec/dummy/db/migrate/20141114170955_papertrail_increase_column.dm_core.rb +9 -0
  150. data/spec/dummy/db/migrate/20141114170956_acts_as_taggable_on_migration.dm_core.rb +32 -0
  151. data/spec/dummy/db/migrate/20141114170957_add_missing_unique_indices.dm_core.rb +23 -0
  152. data/spec/dummy/db/migrate/20141114170958_add_taggings_counter_cache_to_tags.dm_core.rb +16 -0
  153. data/spec/dummy/db/migrate/20141114170959_create_custom_fields.dm_core.rb +40 -0
  154. data/spec/dummy/db/migrate/20141114170960_add_missing_taggable_index.dm_core.rb +11 -0
  155. data/spec/dummy/db/migrate/20141119112030_create_cms.dm_cms.rb +92 -0
  156. data/spec/dummy/db/migrate/20141119112031_add_account_to_cms.dm_cms.rb +11 -0
  157. data/spec/dummy/db/migrate/20141119112032_create_blog.dm_cms.rb +62 -0
  158. data/spec/dummy/db/migrate/20141119112033_add_notification_sent.dm_cms.rb +6 -0
  159. data/spec/dummy/db/migrate/20141119112034_add_blog_comment.dm_cms.rb +8 -0
  160. data/spec/dummy/db/migrate/20141119112035_add_blog_image.dm_cms.rb +6 -0
  161. data/spec/dummy/db/migrate/20141119112036_rename_snippet_slug.dm_cms.rb +14 -0
  162. data/spec/dummy/db/migrate/20141119112037_add_requires_subscription_blog.dm_cms.rb +8 -0
  163. data/spec/dummy/db/migrate/20141119112038_add_pages_ranked_model.dm_cms.rb +23 -0
  164. data/spec/dummy/db/migrate/20141119112039_add_blog_owner.dm_cms.rb +7 -0
  165. data/spec/dummy/db/migrate/20141119112040_create_media_files.dm_cms.rb +30 -0
  166. data/spec/dummy/db/migrate/20141119112041_add_cmspage_summary.dm_cms.rb +7 -0
  167. data/spec/dummy/db/migrate/20141119112042_add_blog_image_email_header.dm_cms.rb +6 -0
  168. data/spec/dummy/db/migrate/20141119112043_add_header_image.dm_cms.rb +10 -0
  169. data/spec/dummy/db/migrate/20160128144312_add_favored_locale.dm_core.rb +17 -0
  170. data/spec/dummy/db/migrate/20160128144313_update_papertrail_v4.dm_core.rb +41 -0
  171. data/spec/dummy/db/schema.rb +628 -0
  172. data/spec/dummy/public/404.html +67 -0
  173. data/spec/dummy/public/422.html +67 -0
  174. data/spec/dummy/public/500.html +66 -0
  175. data/spec/dummy/public/favicon.ico +0 -0
  176. data/spec/factories/accounts.rb +9 -0
  177. data/spec/factories/user_profiles.rb +10 -0
  178. data/spec/factories/users.rb +19 -0
  179. data/spec/models/forum_spec.rb +9 -0
  180. data/spec/rails_helper.rb +70 -0
  181. data/spec/spec_helper.rb +85 -0
  182. data/spec/support/accounts.rb +17 -0
  183. data/spec/support/devise.rb +44 -0
  184. data/spec/support/fix_locale.rb +57 -0
  185. metadata +337 -0
@@ -0,0 +1,104 @@
1
+ en:
2
+ fms:
3
+ count_forums:
4
+ zero: "no forum"
5
+ one: "1 forum"
6
+ other: "%{num} forums"
7
+ count_users:
8
+ zero: "no users"
9
+ one: "1 user"
10
+ other: "%{num} users"
11
+ count_users_active:
12
+ zero: "no active users"
13
+ one: "1 active user"
14
+ other: "%{num} active users"
15
+ count_users_lurking:
16
+ zero: "no lurking users"
17
+ one: "1 lurking user"
18
+ other: "%{num} lurking users"
19
+ count_voices:
20
+ zero: "no voices"
21
+ one: "1 voice"
22
+ other: "%{num} voices"
23
+ count_topics:
24
+ zero: "no topics"
25
+ one: "1 topic"
26
+ other: "%{num} topics"
27
+ count_comments:
28
+ zero: "no comments"
29
+ one: "1 comment"
30
+ other: "%{num} comments"
31
+ count_comments_found:
32
+ zero: "no comments found"
33
+ one: "1 comment found"
34
+ other: "%{count} comments found"
35
+ comment_age: "commented %{when} ago"
36
+ user_is_administrator: Administrator
37
+ user_is_moderator: Moderator
38
+ suspended_user_comment: This comment has been removed
39
+ post_edited: 'edited %{when} ago'
40
+ forums: Forums
41
+ page_nr: 'page %{nr}'
42
+ views_forums:
43
+ recent_activity: Recent activity
44
+ no_recent_activity: No recent activity
45
+ comma_locked_topic: "This topic is locked."
46
+ unmoderated_html: 'This forum is currently unmoderated.<br />Please always be courteous.'
47
+ recent_posts: Recent Posts
48
+ searching_for: Searching for
49
+ by_user: 'by %{user}'
50
+ in_forum: 'in %{forum}'
51
+ views_posts:
52
+ formatting_help: Formatting Help
53
+ formatting_desc: is used for formatting text.
54
+ formatting_bold: '**bold**'
55
+ formatting_italics: '*italics*, _italics_'
56
+ formatting_blockquote: '&gt; <span>(quotes)</span>'
57
+ formatting_icode: '`code`'
58
+ formatting_horizontal_rule: '*** <span>(horizontal rule)</span>'
59
+ formatting_list: '* <span>or</span> 1. <span>(lists)</span>'
60
+ save: 'Save post'
61
+ topic: Topic
62
+ locked: Locked
63
+ or: or
64
+ cancel: cancel
65
+ reply: Reply
66
+ admin:
67
+ edit_post: Edit post
68
+ suspended_user_post: This post has been removed
69
+ reply_to_topic: Reply to topic
70
+ views_topics:
71
+ topic: Name
72
+ body: Body
73
+ delete_sure: 'Delete this topic forever?'
74
+ locked_topic: 'This topic is locked.'
75
+ save_reply: Save reply
76
+ cancel: Cancel
77
+ lock_topic: Locked
78
+ sticky: Sticky
79
+ edit_topic: Edit topic
80
+ post_topic: Post topic
81
+ new_topic: New topic
82
+ voices: Voices
83
+ edit: edit
84
+ delete: delete
85
+ all: all topics
86
+ followed: only watched topics
87
+ started: Started by
88
+ comment_age: "%{when} ago"
89
+ by_user_html: "by %{user}"
90
+ moderator: Moderator
91
+ replies: replies
92
+ views: views
93
+ last_post_on: "Last post by %{user} :: %{date}"
94
+ comments_header: Comments
95
+ no_topics: Be the first to create a topic
96
+ no_followed_topics: There are currently no topics being followed
97
+ no_forums: The Forum section will be available soon
98
+ comment_notification_inform: You will automatically receive notification of any future comments
99
+ follow: Follow
100
+ follow_stop: Stop Following
101
+ topic_follow_section:
102
+ title: Follow Topic by Email
103
+ description: Follow this topic and receive email notifications of new comments
104
+
@@ -0,0 +1,104 @@
1
+ fi:
2
+ fms:
3
+ count_forums:
4
+ zero: "ei foorumia"
5
+ one: "1 foorumi"
6
+ other: "%{num} foorumia"
7
+ count_users:
8
+ zero: "ei käyttäjiä"
9
+ one: "1 käyttäjä"
10
+ other: "%{num} käyttäjää"
11
+ count_users_active:
12
+ zero: "ei aktiivisia käyttäjiä"
13
+ one: "1 aktiivinen käyttäjä"
14
+ other: "%{num} aktiivista käyttäjää"
15
+ count_users_lurking:
16
+ zero: "ei piileviä käyttäjiä"
17
+ one: "1 piilevä käyttäjä"
18
+ other: "%{num} piileviä käyttäjiä"
19
+ count_voices:
20
+ zero: "ei ääniä"
21
+ one: "1 ääni"
22
+ other: "%{num} ääntä"
23
+ count_topics:
24
+ zero: "ei aiheita"
25
+ one: "1 aihe"
26
+ other: "%{num} aihetta"
27
+ count_comments:
28
+ zero: "ei kommentteja"
29
+ one: "1 kommentti"
30
+ other: "%{num} kommenttia"
31
+ count_comments_found:
32
+ zero: "ei löydetty kommentteja"
33
+ one: "1 kommentti löydetty"
34
+ other: "%{count} kommenttia löydetty"
35
+ comment_age: "kommentoitu %{when} sitten"
36
+ user_is_administrator: Ylläpitäjä
37
+ user_is_moderator: Valvoja
38
+ suspended_user_comment: Tämä kommentti on poistettu
39
+ post_edited: 'muokattu %{when} sitten'
40
+ forums: Foorumit
41
+ page_nr: 'sivu %{nr}'
42
+ views_forums:
43
+ recent_activity: Viimeisimpiä tapahtumia
44
+ no_recent_activity: Ei tapahtumia äskettäin
45
+ comma_locked_topic: "Tämä aihe on lukittu."
46
+ unmoderated_html: 'Tämä foorumi on tällä hetkellä valvomaton.<br />Olethan kohtelias ja ystävällinen.'
47
+ recent_posts: Tuoreet viestit
48
+ searching_for: etsiminen
49
+ by_user: '%{user}'
50
+ in_forum: '%{forum}'
51
+ views_posts:
52
+ formatting_help: Formatting Help
53
+ formatting_desc: on käytetty muotoiltuun tekstiin.
54
+ formatting_bold: '**bold**'
55
+ formatting_italics: '*italics*, _italics_'
56
+ formatting_blockquote: '&gt; <span>(quotes)</span>'
57
+ formatting_icode: '`code`'
58
+ formatting_horizontal_rule: '*** <span>(horizontal rule)</span>'
59
+ formatting_list: '* <span>or</span> 1. <span>(lists)</span>'
60
+ save: 'Säästä viesti'
61
+ topic: Aihe
62
+ locked: Lukittu
63
+ or: tai
64
+ cancel: peruuta
65
+ reply: Vastaa
66
+ admin:
67
+ edit_post: Muokkaa viestiä
68
+ suspended_user_post: Tämä viesti on poistettu
69
+ reply_to_topic: Vastaa aiheeseen
70
+ views_topics:
71
+ topic: Nimi
72
+ body: Body
73
+ delete_sure: 'Poista tämä aihe lopullisesti?'
74
+ locked_topic: 'Tämä aihe on lukittu.'
75
+ save_reply: Säästä vastaus
76
+ cancel: Peruuta
77
+ lock_topic: Lukittu
78
+ sticky: Sticky
79
+ edit_topic: Muokkaa aihetta
80
+ post_topic: Lähetä viesti
81
+ new_topic: Uusi aihe
82
+ voices: Ääniä
83
+ edit: muokkaa
84
+ delete: poista
85
+ all: kaikki aiheet
86
+ followed: vain valvottuja aiheita
87
+ started: Aloittaja
88
+ comment_age: "%{when} sitten"
89
+ by_user_html: "%{user}"
90
+ moderator: Valvoja
91
+ replies: vastaukset
92
+ views: katselukerrat
93
+ last_post_on: "Viimeinen viesti %{user} :: %{date}"
94
+ comments_header: Kommentit
95
+ no_topics: Ole ensimmäinen luomassa aihe
96
+ no_followed_topics: Tällä hetkellä ei ole valvottuja aiheita
97
+ no_forums: Foorumi osio on saatavilla pian
98
+ comment_notification_inform: Saat automaattisesti ilmoituksen mahdollisista tulevista kommentteja
99
+ follow: Seurata
100
+ follow_stop: Stop Following
101
+ topic_follow_section:
102
+ title: seuraa aihetta sähköpostein
103
+ description: seuraa aihetta ja vastaanota sähköposti-ilmoitus uusista kommenteista
104
+
@@ -0,0 +1,104 @@
1
+ ja:
2
+ fms:
3
+ count_forums:
4
+ zero: "no forum"
5
+ one: "1 forum"
6
+ other: "%{num} forums"
7
+ count_users:
8
+ zero: "no users"
9
+ one: "1 user"
10
+ other: "%{num} users"
11
+ count_users_active:
12
+ zero: "no active users"
13
+ one: "1 active user"
14
+ other: "%{num} active users"
15
+ count_users_lurking:
16
+ zero: "no lurking users"
17
+ one: "1 lurking user"
18
+ other: "%{num} lurking users"
19
+ count_voices:
20
+ zero: "no voices"
21
+ one: "1 voice"
22
+ other: "%{num} voices"
23
+ count_topics:
24
+ zero: "no topics"
25
+ one: "1 topic"
26
+ other: "%{num} topics"
27
+ count_comments:
28
+ zero: "no comments"
29
+ one: "1 comment"
30
+ other: "%{num} comments"
31
+ count_comments_found:
32
+ zero: "no comments found"
33
+ one: "1 comment found"
34
+ other: "%{count} comments found"
35
+ comment_age: "commented %{when} ago"
36
+ user_is_administrator: Administrator
37
+ user_is_moderator: Moderator
38
+ suspended_user_comment: This comment has been removed
39
+ post_edited: 'edited %{when} ago'
40
+ forums: Forums
41
+ page_nr: 'page %{nr}'
42
+ views_forums:
43
+ recent_activity: Recent activity
44
+ no_recent_activity: No recent activity
45
+ comma_locked_topic: "This topic is locked."
46
+ unmoderated_html: 'This forum is currently unmoderated.<br />Please always be courteous.'
47
+ recent_posts: Recent Posts
48
+ searching_for: Searching for
49
+ by_user: 'by %{user}'
50
+ in_forum: 'in %{forum}'
51
+ views_posts:
52
+ formatting_help: Formatting Help
53
+ formatting_desc: is used for formatting text.
54
+ formatting_bold: '**bold**'
55
+ formatting_italics: '*italics*, _italics_'
56
+ formatting_blockquote: '&gt; <span>(quotes)</span>'
57
+ formatting_icode: '`code`'
58
+ formatting_horizontal_rule: '*** <span>(horizontal rule)</span>'
59
+ formatting_list: '* <span>or</span> 1. <span>(lists)</span>'
60
+ save: 'Save post'
61
+ topic: Topic
62
+ locked: Locked
63
+ or: or
64
+ cancel: cancel
65
+ reply: Reply
66
+ admin:
67
+ edit_post: Edit post
68
+ suspended_user_post: This post has been removed
69
+ reply_to_topic: Reply to topic
70
+ views_topics:
71
+ topic: Name
72
+ body: Body
73
+ delete_sure: 'Delete this topic forever?'
74
+ locked_topic: 'This topic is locked.'
75
+ save_reply: Save reply
76
+ cancel: Cancel
77
+ lock_topic: Locked
78
+ sticky: Sticky
79
+ edit_topic: Edit topic
80
+ post_topic: Post topic
81
+ new_topic: New topic
82
+ voices: Voices
83
+ edit: edit
84
+ delete: delete
85
+ all: all topics
86
+ followed: only watched topics
87
+ started: Started by
88
+ comment_age: "%{when} ago"
89
+ by_user_html: "by %{user}"
90
+ moderator: Moderator
91
+ replies: replies
92
+ views: views
93
+ last_post_on: "Last post by %{user} :: %{date}"
94
+ comments_header: Comments
95
+ no_topics: Be the first to create a topic
96
+ no_followed_topics: There are currently no topics being followed
97
+ no_forums: The Forum section will be available soon
98
+ comment_notification_inform: あなたは自動的に将来のコメントの通知を受け取ります
99
+ follow: 購読する
100
+ follow_stop: 購読停止する
101
+ topic_follow_section:
102
+ title: Follow Topic by Email
103
+ description: Follow this topic and receive email notifications of new comments
104
+
data/config/routes.rb ADDED
@@ -0,0 +1,43 @@
1
+ DmForum::Engine.routes.draw do
2
+
3
+ #--- for some reason, just having this in the main app's routes didn't work, so also added here
4
+ themes_for_rails
5
+
6
+ scope ":locale" do
7
+ namespace :admin do
8
+ get '/dashboard/widget_forum_comments(/:comment_day)', :controller => 'dashboard', :action => :widget_forum_comments, :as => :widget_forum_comments
9
+ scope 'fms' do
10
+ resource :forum_site
11
+ post '/forum_categories/sort', :controller => 'forum_categories', :action => :sort, :as => :forum_category_sort
12
+ resources :forum_categories do
13
+ resources :forums
14
+ end
15
+ post '/forums/sort', :controller => 'forums', :action => :sort, :as => :forum_sort
16
+ resources :forums do
17
+ member do
18
+ get 'forum_users', :action => :forum_users, :as => :forum_users
19
+ match 'forum_add_member', :action => :forum_add_member, :as => :forum_add_member, :via => [:get, :post]
20
+ delete 'forum_delete_member', :action => :forum_delete_member, :as => :forum_delete_member
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ scope 'forum' do
27
+ get '/', :controller => 'forums', :action => :categories, :as => :forum_root
28
+ get '/:id', :controller => 'forums', :action => :show, :as => :forum_show
29
+ resources :forums do
30
+ resources :forum_topics do
31
+ resources :forum_comments
32
+ patch 'toggle_follow', :action => :toggle_follow
33
+ end
34
+ resources :posts
35
+ end
36
+
37
+ resources :forum_comments do
38
+ get :search, :on => :collection
39
+ end
40
+ end
41
+ end
42
+
43
+ end
@@ -0,0 +1,72 @@
1
+ class CreateForums < ActiveRecord::Migration
2
+ def up
3
+
4
+ create_table :fms_forums, :force => true do |t|
5
+ t.integer :account_id
6
+ t.integer :forum_site_id
7
+ t.string :name
8
+ t.text :description
9
+ t.integer :forum_topics_count, :default => 0
10
+ t.integer :comments_count, :default => 0
11
+ t.integer :row_order, :default => 0
12
+ t.text :description_html
13
+ t.string :state, :default => "public"
14
+ t.boolean :published, :default => false
15
+ t.string :slug
16
+ end
17
+ add_index :fms_forums, [:account_id, :slug]
18
+
19
+ create_table :fms_monitorships, :force => true do |t|
20
+ t.integer :account_id
21
+ t.integer :user_id
22
+ t.integer :forum_topic_id
23
+ t.datetime :created_at
24
+ t.datetime :updated_at
25
+ t.boolean :active, :default => true
26
+ end
27
+ add_index :fms_monitorships, :account_id
28
+
29
+ create_table :fms_forum_sites, :force => true do |t|
30
+ t.integer :account_id
31
+ t.boolean :enabled, :default => false
32
+ t.datetime :created_at
33
+ t.datetime :updated_at
34
+ t.integer :forum_topics_count, :default => 0
35
+ t.integer :comments_count, :default => 0
36
+ t.integer :users_count, :default => 0
37
+ t.text :description
38
+ t.text :tagline
39
+ end
40
+
41
+ create_table :fms_forum_topics, :force => true do |t|
42
+ t.integer :account_id
43
+ t.integer :forum_id
44
+ t.integer :user_id
45
+ t.string :title
46
+ t.datetime :created_at
47
+ t.datetime :updated_at
48
+ t.integer :hits, :default => 0
49
+ t.boolean :sticky, :default => false
50
+ t.integer :comments_count, :default => 0
51
+ t.boolean :locked, :default => false
52
+ t.integer :last_forum_comment_id
53
+ t.datetime :last_updated_at
54
+ t.integer :last_user_id
55
+ t.integer :forum_site_id
56
+ t.string :slug
57
+ end
58
+
59
+ add_index :fms_forum_topics, [:account_id, :forum_id, :slug]
60
+ add_index :fms_forum_topics, [:account_id, :last_updated_at, :forum_id], :name => 'index_forum_topics_last_updated_at_forum_id'
61
+ add_index :fms_forum_topics, [:account_id, :sticky, :last_updated_at, :forum_id], :name => 'index_forum_topics_sticky_last_updated_at_forum_id'
62
+
63
+ end
64
+
65
+ def down
66
+ drop_table :fms_forums
67
+ drop_table :fms_moderatorships
68
+ drop_table :fms_monitorships
69
+ drop_table :fms_forum_sites
70
+ drop_table :fms_forum_topics
71
+ end
72
+ end
@@ -0,0 +1,13 @@
1
+ class AddPublicForum < ActiveRecord::Migration
2
+ def up
3
+ add_column :fms_forums, :is_public, :boolean, :default => false
4
+ add_column :fms_forums, :requires_login, :boolean, :default => false
5
+ remove_column :fms_forums, :state
6
+ end
7
+
8
+ def down
9
+ remove_column :fms_forums, :is_public
10
+ remove_column :fms_forums, :requires_login
11
+ add_column :fms_forums, :state, :string, :default => 'public'
12
+ end
13
+ end
@@ -0,0 +1,7 @@
1
+ class AddForumCategory < ActiveRecord::Migration
2
+
3
+ def change
4
+ add_column :fms_forums, :forum_category_id, :integer
5
+ end
6
+
7
+ end
@@ -0,0 +1,17 @@
1
+ class DeleteMonitorships < ActiveRecord::Migration
2
+ def up
3
+ drop_table :fms_monitorships
4
+ end
5
+
6
+ def down
7
+ create_table :fms_monitorships, :force => true do |t|
8
+ t.integer :account_id
9
+ t.integer :user_id
10
+ t.integer :forum_topic_id
11
+ t.datetime :created_at
12
+ t.datetime :updated_at
13
+ t.boolean :active, :default => true
14
+ end
15
+ add_index :fms_monitorships, :account_id
16
+ end
17
+ end
@@ -0,0 +1,5 @@
1
+ class AddRequiresSubscriptionForum < ActiveRecord::Migration
2
+ def change
3
+ add_column :fms_forums, :requires_subscription, :boolean, :default => false
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddForumOwner < ActiveRecord::Migration
2
+ def change
3
+ add_column :fms_forums, :owner_id, :integer
4
+ add_column :fms_forums, :owner_type, :string
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class IndexForeignKeysInFmsForumSites < ActiveRecord::Migration
2
+ def change
3
+ add_index :fms_forum_sites, :account_id
4
+ end
5
+ end
@@ -0,0 +1,9 @@
1
+ class IndexForeignKeysInFmsForumTopics < ActiveRecord::Migration
2
+ def change
3
+ add_index :fms_forum_topics, :forum_id
4
+ add_index :fms_forum_topics, :forum_site_id
5
+ add_index :fms_forum_topics, :last_forum_comment_id
6
+ add_index :fms_forum_topics, :last_user_id
7
+ add_index :fms_forum_topics, :user_id
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ class IndexForeignKeysInFmsForums < ActiveRecord::Migration
2
+ def change
3
+ add_index :fms_forums, :forum_category_id
4
+ add_index :fms_forums, :forum_site_id
5
+ add_index :fms_forums, :owner_id
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ require 'dm_core'
2
+ require 'dm_cms'
3
+ require 'themes_for_rails'
4
+
5
+ module DmForum
6
+ class Engine < ::Rails::Engine
7
+ isolate_namespace DmForum
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ module DmForum
2
+ VERSION = "4.2.0"
3
+ end
data/lib/dm_forum.rb ADDED
@@ -0,0 +1,4 @@
1
+ require "dm_forum/engine"
2
+
3
+ module DmForum
4
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :dm_forum do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,28 @@
1
+ == README
2
+
3
+ This README would normally document whatever steps are necessary to get the
4
+ application up and running.
5
+
6
+ Things you may want to cover:
7
+
8
+ * Ruby version
9
+
10
+ * System dependencies
11
+
12
+ * Configuration
13
+
14
+ * Database creation
15
+
16
+ * Database initialization
17
+
18
+ * How to run the test suite
19
+
20
+ * Services (job queues, cache servers, search engines, etc.)
21
+
22
+ * Deployment instructions
23
+
24
+ * ...
25
+
26
+
27
+ Please feel free to use a different markup language if you do not plan to run
28
+ <tt>rake doc:app</tt>.
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,13 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file.
9
+ //
10
+ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require_tree .
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any styles
10
+ * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
+ * file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,5 @@
1
+ class ApplicationController < DmCore::ApplicationController
2
+ # Prevent CSRF attacks by raising an exception.
3
+ # For APIs, you may want to use :null_session instead.
4
+ protect_from_forgery with: :exception
5
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,12 @@
1
+ # Application's CanCan ability class, include all gem abilities
2
+ #------------------------------------------------------------------------------
3
+ class Ability
4
+ include CanCan::Ability
5
+ include DmCore::Concerns::Ability
6
+ include DmKnowledge::Concerns::Ability
7
+
8
+ def initialize(user)
9
+ dm_knowledge_abilities(user) if respond_to? :dm_knowlege_abilities
10
+ dm_core_abilities(user) if respond_to? :dm_core_abilities
11
+ end
12
+ end
@@ -0,0 +1,6 @@
1
+ class User < ActiveRecord::Base
2
+
3
+ #--- DmCore already has default devise fields/tokens
4
+ include DmCore::Concerns::User
5
+
6
+ end
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Dummy</title>
5
+ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
6
+ <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3
+ load Gem.bin_path('bundler', 'bundle')
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
3
+ require_relative '../config/boot'
4
+ require 'rails/commands'
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../config/boot'
3
+ require 'rake'
4
+ Rake.application.run