dm_forum 4.2.1.5

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 (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