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.
- checksums.yaml +7 -0
- data/MIT-LICENSE +23 -0
- data/README.md +33 -0
- data/Rakefile +30 -0
- data/app/assets/javascripts/dm_forum/admin.js +20 -0
- data/app/assets/javascripts/dm_forum/application.js +16 -0
- data/app/assets/javascripts/dm_forum/dm_forum.js +3 -0
- data/app/assets/stylesheets/dm_forum/admin.css +2 -0
- data/app/assets/stylesheets/dm_forum/application.css +12 -0
- data/app/controllers/dm_forum/admin/admin_controller.rb +13 -0
- data/app/controllers/dm_forum/admin/dashboard_controller.rb +12 -0
- data/app/controllers/dm_forum/admin/forum_categories_controller.rb +80 -0
- data/app/controllers/dm_forum/admin/forum_sites_controller.rb +40 -0
- data/app/controllers/dm_forum/admin/forums_controller.rb +113 -0
- data/app/controllers/dm_forum/application_controller.rb +25 -0
- data/app/controllers/dm_forum/forum_comments_controller.rb +88 -0
- data/app/controllers/dm_forum/forum_topics_controller.rb +93 -0
- data/app/controllers/dm_forum/forums_controller.rb +45 -0
- data/app/datatables/forum_user_datatable.rb +79 -0
- data/app/helpers/dm_forum/application_helper.rb +5 -0
- data/app/helpers/dm_forum/forum_helper.rb +109 -0
- data/app/mailers/forum_notification_mailer.rb +27 -0
- data/app/models/dm_forum/concerns/ability.rb +50 -0
- data/app/models/dm_forum/concerns/user.rb +37 -0
- data/app/models/dm_forum/permitted_params.rb +38 -0
- data/app/models/forum.rb +74 -0
- data/app/models/forum_category.rb +14 -0
- data/app/models/forum_comment.rb +93 -0
- data/app/models/forum_site.rb +27 -0
- data/app/models/forum_topic.rb +146 -0
- data/app/presenters/forum_comment_presenter.rb +8 -0
- data/app/presenters/forum_common_presenter.rb +31 -0
- data/app/presenters/forum_presenter.rb +14 -0
- data/app/views/dm_forum/admin/dashboard/_widget_forum_comments.html.erb +38 -0
- data/app/views/dm_forum/admin/dashboard/widget_forum_comments.js.erb +1 -0
- data/app/views/dm_forum/admin/forum_categories/_content_toolbar.html.erb +5 -0
- data/app/views/dm_forum/admin/forum_categories/_form.html.erb +18 -0
- data/app/views/dm_forum/admin/forum_categories/edit.html.erb +3 -0
- data/app/views/dm_forum/admin/forum_categories/index.html.erb +25 -0
- data/app/views/dm_forum/admin/forum_categories/new.html.erb +3 -0
- data/app/views/dm_forum/admin/forum_categories/show.html.erb +41 -0
- data/app/views/dm_forum/admin/forum_sites/_form.html.erb +18 -0
- data/app/views/dm_forum/admin/forum_sites/edit.html.erb +2 -0
- data/app/views/dm_forum/admin/forum_sites/show.html.erb +12 -0
- data/app/views/dm_forum/admin/forums/_content_toolbar.html.erb +5 -0
- data/app/views/dm_forum/admin/forums/_form.html.erb +24 -0
- data/app/views/dm_forum/admin/forums/edit.html.erb +2 -0
- data/app/views/dm_forum/admin/forums/new.html.erb +2 -0
- data/app/views/dm_forum/admin/forums/show.html.erb +68 -0
- data/app/views/dm_forum/forum_comments/_formatting.html.erb +12 -0
- data/app/views/dm_forum/forum_comments/edit.html.erb +15 -0
- data/app/views/dm_forum/forum_topics/_comment_item.html.erb +26 -0
- data/app/views/dm_forum/forum_topics/_comments_list.html.erb +63 -0
- data/app/views/dm_forum/forum_topics/_follow_button.html.erb +3 -0
- data/app/views/dm_forum/forum_topics/_form.html.erb +24 -0
- data/app/views/dm_forum/forum_topics/edit.html.erb +13 -0
- data/app/views/dm_forum/forum_topics/new.html.erb +13 -0
- data/app/views/dm_forum/forum_topics/show.html.erb +49 -0
- data/app/views/dm_forum/forum_topics/toggle_follow.js.coffee +5 -0
- data/app/views/dm_forum/forums/_category_side_list.html.erb +28 -0
- data/app/views/dm_forum/forums/_forum_header.html.erb +14 -0
- data/app/views/dm_forum/forums/_no_forums.html.erb +1 -0
- data/app/views/dm_forum/forums/_topics_list.html.erb +86 -0
- data/app/views/dm_forum/forums/categories.html.erb +32 -0
- data/app/views/dm_forum/forums/list.html.erb +10 -0
- data/app/views/dm_forum/forums/show.html.erb +39 -0
- data/app/views/layouts/email_templates/forum_notification.html.erb +15 -0
- data/app/views/layouts/email_templates/forum_notification.text.erb +16 -0
- data/config/initializers/dm_forum.rb +0 -0
- data/config/locales/fms.cs.yml +104 -0
- data/config/locales/fms.de.yml +104 -0
- data/config/locales/fms.en.yml +104 -0
- data/config/locales/fms.fi.yml +104 -0
- data/config/locales/fms.ja.yml +104 -0
- data/config/routes.rb +43 -0
- data/db/migrate/20130103151149_create_forums.rb +72 -0
- data/db/migrate/20130424125513_add_public_forum.rb +13 -0
- data/db/migrate/20130430084925_add_forum_category.rb +7 -0
- data/db/migrate/20140201112134_delete_monitorships.rb +17 -0
- data/db/migrate/20140303121325_add_requires_subscription_forum.rb +5 -0
- data/db/migrate/20140423113420_add_forum_owner.rb +6 -0
- data/db/migrate/20160821150125_index_foreign_keys_in_fms_forum_sites.rb +5 -0
- data/db/migrate/20160821150126_index_foreign_keys_in_fms_forum_topics.rb +9 -0
- data/db/migrate/20160821150127_index_foreign_keys_in_fms_forums.rb +7 -0
- data/lib/dm_forum/engine.rb +9 -0
- data/lib/dm_forum/version.rb +3 -0
- data/lib/dm_forum.rb +4 -0
- data/lib/tasks/dm_forum_tasks.rake +4 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/ability.rb +12 -0
- data/spec/dummy/app/models/user.rb +6 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config/application.rb +26 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +82 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/assets.rb +8 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +17 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20141114170927_add_globalize_countries.dm_core.rb +50 -0
- data/spec/dummy/db/migrate/20141114170928_devise_create_users.dm_core.rb +46 -0
- data/spec/dummy/db/migrate/20141114170929_add_user_fields.dm_core.rb +14 -0
- data/spec/dummy/db/migrate/20141114170930_rolify_create_roles.dm_core.rb +20 -0
- data/spec/dummy/db/migrate/20141114170931_add_last_access.dm_core.rb +10 -0
- data/spec/dummy/db/migrate/20141114170932_create_versions.dm_core.rb +19 -0
- data/spec/dummy/db/migrate/20141114170933_add_object_changes_column_to_versions.dm_core.rb +12 -0
- data/spec/dummy/db/migrate/20141114170934_create_dm_core_accounts.dm_core.rb +13 -0
- data/spec/dummy/db/migrate/20141114170935_add_account_to_users.dm_core.rb +9 -0
- data/spec/dummy/db/migrate/20141114170936_create_preferences.dm_core.rb +13 -0
- data/spec/dummy/db/migrate/20141114170937_create_comments.dm_core.rb +22 -0
- data/spec/dummy/db/migrate/20141114170938_add_activity.dm_core.rb +21 -0
- data/spec/dummy/db/migrate/20141114170939_add_type_to_comments.dm_core.rb +9 -0
- data/spec/dummy/db/migrate/20141114170940_add_category.dm_core.rb +28 -0
- data/spec/dummy/db/migrate/20141114170941_create_email_table.dm_core.rb +26 -0
- data/spec/dummy/db/migrate/20141114170942_add_user_profile.dm_core.rb +46 -0
- data/spec/dummy/db/migrate/20141114170943_add_profile_email.dm_core.rb +14 -0
- data/spec/dummy/db/migrate/20141114170944_create_payment_history.dm_core.rb +37 -0
- data/spec/dummy/db/migrate/20141114170945_change_anchor_field.dm_core.rb +10 -0
- data/spec/dummy/db/migrate/20141114170946_create_user_site_profile.dm_core.rb +27 -0
- data/spec/dummy/db/migrate/20141114170947_add_avatar.dm_core.rb +12 -0
- data/spec/dummy/db/migrate/20141114170948_add_notify_to_payment_history.dm_core.rb +8 -0
- data/spec/dummy/db/migrate/20141114170949_acts_as_votable_migration.dm_core.rb +28 -0
- data/spec/dummy/db/migrate/20141114170950_add_user_site_profile_uuid.dm_core.rb +19 -0
- data/spec/dummy/db/migrate/20141114170951_add_invoice_id.dm_core.rb +7 -0
- data/spec/dummy/db/migrate/20141114170952_acts_as_follower_migration.dm_core.rb +18 -0
- data/spec/dummy/db/migrate/20141114170953_rename_invoice_id.dm_core.rb +12 -0
- data/spec/dummy/db/migrate/20141114170954_add_core_addresses.dm_core.rb +18 -0
- data/spec/dummy/db/migrate/20141114170955_papertrail_increase_column.dm_core.rb +9 -0
- data/spec/dummy/db/migrate/20141114170956_acts_as_taggable_on_migration.dm_core.rb +32 -0
- data/spec/dummy/db/migrate/20141114170957_add_missing_unique_indices.dm_core.rb +23 -0
- data/spec/dummy/db/migrate/20141114170958_add_taggings_counter_cache_to_tags.dm_core.rb +16 -0
- data/spec/dummy/db/migrate/20141114170959_create_custom_fields.dm_core.rb +40 -0
- data/spec/dummy/db/migrate/20141114170960_add_missing_taggable_index.dm_core.rb +11 -0
- data/spec/dummy/db/migrate/20141119112030_create_cms.dm_cms.rb +92 -0
- data/spec/dummy/db/migrate/20141119112031_add_account_to_cms.dm_cms.rb +11 -0
- data/spec/dummy/db/migrate/20141119112032_create_blog.dm_cms.rb +62 -0
- data/spec/dummy/db/migrate/20141119112033_add_notification_sent.dm_cms.rb +6 -0
- data/spec/dummy/db/migrate/20141119112034_add_blog_comment.dm_cms.rb +8 -0
- data/spec/dummy/db/migrate/20141119112035_add_blog_image.dm_cms.rb +6 -0
- data/spec/dummy/db/migrate/20141119112036_rename_snippet_slug.dm_cms.rb +14 -0
- data/spec/dummy/db/migrate/20141119112037_add_requires_subscription_blog.dm_cms.rb +8 -0
- data/spec/dummy/db/migrate/20141119112038_add_pages_ranked_model.dm_cms.rb +23 -0
- data/spec/dummy/db/migrate/20141119112039_add_blog_owner.dm_cms.rb +7 -0
- data/spec/dummy/db/migrate/20141119112040_create_media_files.dm_cms.rb +30 -0
- data/spec/dummy/db/migrate/20141119112041_add_cmspage_summary.dm_cms.rb +7 -0
- data/spec/dummy/db/migrate/20141119112042_add_blog_image_email_header.dm_cms.rb +6 -0
- data/spec/dummy/db/migrate/20141119112043_add_header_image.dm_cms.rb +10 -0
- data/spec/dummy/db/migrate/20160128144312_add_favored_locale.dm_core.rb +17 -0
- data/spec/dummy/db/migrate/20160128144313_update_papertrail_v4.dm_core.rb +41 -0
- data/spec/dummy/db/schema.rb +628 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/factories/accounts.rb +9 -0
- data/spec/factories/user_profiles.rb +10 -0
- data/spec/factories/users.rb +19 -0
- data/spec/models/forum_spec.rb +9 -0
- data/spec/rails_helper.rb +70 -0
- data/spec/spec_helper.rb +85 -0
- data/spec/support/accounts.rb +17 -0
- data/spec/support/devise.rb +44 -0
- data/spec/support/fix_locale.rb +57 -0
- 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: '> <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: '> <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: '> <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,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,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
|
data/lib/dm_forum.rb
ADDED
|
@@ -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>.
|
data/spec/dummy/Rakefile
ADDED
|
@@ -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,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,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>
|
data/spec/dummy/bin/rake
ADDED