thredded 0.12.1 → 0.12.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (153) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/commands/thredded/at_notification_extractor.rb +1 -0
  4. data/app/commands/thredded/autofollow_users.rb +1 -0
  5. data/app/commands/thredded/create_messageboard.rb +1 -0
  6. data/app/commands/thredded/mark_all_read.rb +1 -0
  7. data/app/commands/thredded/moderate_post.rb +1 -0
  8. data/app/commands/thredded/notify_following_users.rb +1 -0
  9. data/app/commands/thredded/notify_private_topic_users.rb +1 -0
  10. data/app/controllers/concerns/thredded/new_post_params.rb +1 -0
  11. data/app/controllers/concerns/thredded/new_private_post_params.rb +1 -0
  12. data/app/controllers/concerns/thredded/new_private_topic_params.rb +1 -0
  13. data/app/controllers/concerns/thredded/new_topic_params.rb +1 -0
  14. data/app/controllers/concerns/thredded/render_preview.rb +1 -0
  15. data/app/controllers/thredded/application_controller.rb +1 -0
  16. data/app/controllers/thredded/autocomplete_users_controller.rb +1 -0
  17. data/app/controllers/thredded/messageboards_controller.rb +4 -3
  18. data/app/controllers/thredded/moderation_controller.rb +1 -0
  19. data/app/controllers/thredded/post_permalinks_controller.rb +1 -0
  20. data/app/controllers/thredded/post_previews_controller.rb +1 -0
  21. data/app/controllers/thredded/posts_controller.rb +1 -0
  22. data/app/controllers/thredded/preferences_controller.rb +4 -3
  23. data/app/controllers/thredded/private_post_permalinks_controller.rb +1 -0
  24. data/app/controllers/thredded/private_post_previews_controller.rb +1 -0
  25. data/app/controllers/thredded/private_posts_controller.rb +1 -0
  26. data/app/controllers/thredded/private_topic_previews_controller.rb +1 -0
  27. data/app/controllers/thredded/private_topics_controller.rb +1 -0
  28. data/app/controllers/thredded/read_states_controller.rb +1 -0
  29. data/app/controllers/thredded/theme_previews_controller.rb +1 -0
  30. data/app/controllers/thredded/topic_previews_controller.rb +1 -0
  31. data/app/controllers/thredded/topics_controller.rb +5 -4
  32. data/app/forms/thredded/edit_topic_form.rb +1 -0
  33. data/app/forms/thredded/post_form.rb +2 -0
  34. data/app/forms/thredded/private_post_form.rb +2 -0
  35. data/app/forms/thredded/private_topic_form.rb +1 -0
  36. data/app/forms/thredded/topic_form.rb +1 -0
  37. data/app/forms/thredded/user_preferences_form.rb +1 -0
  38. data/app/helpers/thredded/application_helper.rb +1 -0
  39. data/app/helpers/thredded/nav_helper.rb +7 -6
  40. data/app/helpers/thredded/render_helper.rb +1 -0
  41. data/app/helpers/thredded/urls_helper.rb +1 -0
  42. data/app/jobs/thredded/activity_updater_job.rb +1 -0
  43. data/app/jobs/thredded/auto_follow_and_notify_job.rb +1 -0
  44. data/app/jobs/thredded/notify_private_topic_users_job.rb +1 -0
  45. data/app/mailer_previews/thredded/base_mailer_preview.rb +2 -1
  46. data/app/mailer_previews/thredded/post_mailer_preview.rb +3 -2
  47. data/app/mailer_previews/thredded/private_topic_mailer_preview.rb +2 -1
  48. data/app/mailers/thredded/base_mailer.rb +1 -0
  49. data/app/mailers/thredded/post_mailer.rb +1 -0
  50. data/app/mailers/thredded/private_topic_mailer.rb +1 -0
  51. data/app/models/concerns/thredded/content_moderation_state.rb +1 -0
  52. data/app/models/concerns/thredded/friendly_id_reserved_words_and_pagination.rb +1 -0
  53. data/app/models/concerns/thredded/moderation_state.rb +2 -1
  54. data/app/models/concerns/thredded/notifier_preference.rb +1 -0
  55. data/app/models/concerns/thredded/post_common.rb +1 -0
  56. data/app/models/concerns/thredded/search_parser.rb +3 -2
  57. data/app/models/concerns/thredded/topic_common.rb +2 -1
  58. data/app/models/concerns/thredded/topics_search.rb +1 -0
  59. data/app/models/concerns/thredded/user_topic_read_state_common.rb +1 -0
  60. data/app/models/thredded/category.rb +2 -1
  61. data/app/models/thredded/messageboard.rb +5 -4
  62. data/app/models/thredded/messageboard_group.rb +1 -0
  63. data/app/models/thredded/messageboard_notifications_for_followed_topics.rb +2 -1
  64. data/app/models/thredded/messageboard_user.rb +1 -0
  65. data/app/models/thredded/notifications_for_followed_topics.rb +2 -1
  66. data/app/models/thredded/notifications_for_private_topics.rb +2 -1
  67. data/app/models/thredded/null_user.rb +1 -0
  68. data/app/models/thredded/null_user_topic_read_state.rb +1 -0
  69. data/app/models/thredded/post.rb +4 -3
  70. data/app/models/thredded/post_moderation_record.rb +3 -2
  71. data/app/models/thredded/private_post.rb +3 -2
  72. data/app/models/thredded/private_topic.rb +4 -3
  73. data/app/models/thredded/private_user.rb +2 -1
  74. data/app/models/thredded/stats.rb +1 -0
  75. data/app/models/thredded/topic.rb +6 -5
  76. data/app/models/thredded/topic_category.rb +1 -0
  77. data/app/models/thredded/user_detail.rb +2 -1
  78. data/app/models/thredded/user_extender.rb +2 -1
  79. data/app/models/thredded/user_messageboard_preference.rb +2 -1
  80. data/app/models/thredded/user_permissions/admin/if_admin_column_true.rb +1 -0
  81. data/app/models/thredded/user_permissions/admin/none.rb +1 -0
  82. data/app/models/thredded/user_permissions/message/readers_of_writeable_boards.rb +1 -0
  83. data/app/models/thredded/user_permissions/moderate/if_moderator_column_true.rb +1 -0
  84. data/app/models/thredded/user_permissions/moderate/none.rb +1 -0
  85. data/app/models/thredded/user_permissions/read/all.rb +1 -0
  86. data/app/models/thredded/user_permissions/write/all.rb +1 -0
  87. data/app/models/thredded/user_permissions/write/none.rb +1 -0
  88. data/app/models/thredded/user_post_notification.rb +2 -1
  89. data/app/models/thredded/user_preference.rb +2 -1
  90. data/app/models/thredded/user_private_topic_read_state.rb +2 -1
  91. data/app/models/thredded/user_topic_follow.rb +3 -2
  92. data/app/models/thredded/user_topic_read_state.rb +2 -1
  93. data/app/notifiers/thredded/base_notifier.rb +1 -1
  94. data/app/notifiers/thredded/email_notifier.rb +1 -0
  95. data/app/policies/thredded/messageboard_group_policy.rb +1 -0
  96. data/app/policies/thredded/messageboard_policy.rb +1 -0
  97. data/app/policies/thredded/post_policy.rb +1 -0
  98. data/app/policies/thredded/private_post_policy.rb +1 -0
  99. data/app/policies/thredded/private_topic_policy.rb +1 -0
  100. data/app/policies/thredded/topic_policy.rb +1 -0
  101. data/app/view_hooks/thredded/all_view_hooks.rb +1 -0
  102. data/app/view_models/thredded/base_topic_view.rb +1 -0
  103. data/app/view_models/thredded/messageboard_group_view.rb +1 -0
  104. data/app/view_models/thredded/post_view.rb +1 -0
  105. data/app/view_models/thredded/posts_page_view.rb +1 -0
  106. data/app/view_models/thredded/private_topic_view.rb +1 -0
  107. data/app/view_models/thredded/private_topics_page_view.rb +1 -0
  108. data/app/view_models/thredded/topic_email_view.rb +1 -0
  109. data/app/view_models/thredded/topic_posts_page_view.rb +1 -0
  110. data/app/view_models/thredded/topic_view.rb +1 -0
  111. data/app/view_models/thredded/topics_page_view.rb +1 -0
  112. data/app/views/thredded/messageboards/index.html.erb +2 -2
  113. data/app/views/thredded/posts_common/actions/_edit.html.erb +2 -1
  114. data/app/views/thredded/private_topics/_header.html.erb +2 -1
  115. data/app/views/thredded/topics/_header.html.erb +2 -1
  116. data/app/views/thredded/topics/index.html.erb +1 -1
  117. data/bin/rails +1 -0
  118. data/bin/rubocop +1 -0
  119. data/config/routes.rb +13 -12
  120. data/db/migrate/20160329231848_create_thredded.rb +75 -66
  121. data/db/upgrade_migrations/20160611094616_upgrade_v0_5_to_v0_6.rb +6 -3
  122. data/db/upgrade_migrations/20160723012349_upgrade_v0_6_to_v0_7.rb +4 -1
  123. data/db/upgrade_migrations/20161019150201_upgrade_v0_7_to_v0_8.rb +4 -1
  124. data/db/upgrade_migrations/20161113161801_upgrade_v0_8_to_v0_9.rb +11 -8
  125. data/db/upgrade_migrations/20170125033319_upgrade_v0_9_to_v0_10.rb +12 -6
  126. data/db/upgrade_migrations/20170312131417_upgrade_thredded_v0_10_to_v0_11.rb +6 -3
  127. data/db/upgrade_migrations/20170420163138_upgrade_thredded_v0_11_to_v0_12.rb +4 -1
  128. data/lib/generators/thredded/install/install_generator.rb +1 -0
  129. data/lib/generators/thredded/install/templates/initializer.rb +1 -0
  130. data/lib/tasks/thredded_tasks.rake +1 -0
  131. data/lib/thredded.rb +7 -0
  132. data/lib/thredded/base_migration.rb +14 -0
  133. data/lib/thredded/collection_to_strings_with_cache_renderer.rb +1 -0
  134. data/lib/thredded/content_formatter.rb +7 -6
  135. data/lib/thredded/database_seeder.rb +1 -0
  136. data/lib/thredded/db_tools.rb +9 -8
  137. data/lib/thredded/email_transformer.rb +1 -0
  138. data/lib/thredded/email_transformer/onebox.rb +1 -0
  139. data/lib/thredded/engine.rb +3 -2
  140. data/lib/thredded/errors.rb +1 -0
  141. data/lib/thredded/formatting_demo_content.rb +1 -0
  142. data/lib/thredded/html_pipeline/at_mention_filter.rb +3 -2
  143. data/lib/thredded/html_pipeline/autolink_filter.rb +1 -0
  144. data/lib/thredded/html_pipeline/kramdown_filter.rb +2 -1
  145. data/lib/thredded/html_pipeline/onebox_filter.rb +2 -1
  146. data/lib/thredded/html_pipeline/wrap_iframes_filter.rb +1 -0
  147. data/lib/thredded/version.rb +2 -1
  148. data/lib/thredded/view_hooks/config.rb +1 -0
  149. data/lib/thredded/view_hooks/renderer.rb +1 -0
  150. metadata +5 -7
  151. data/db/upgrade_migrations/20160410111522_upgrade_v0_2_to_v0_3.rb +0 -63
  152. data/db/upgrade_migrations/20160429222452_upgrade_v0_3_to_v0_4.rb +0 -13
  153. data/db/upgrade_migrations/20160501151908_upgrade_v0_4_to_v0_5.rb +0 -56
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
- # rubocop:disable Metrics/MethodLength
3
- # rubocop:disable Metrics/LineLength
4
- class UpgradeV02ToV03 < ActiveRecord::Migration
5
- def up
6
- remove_index :thredded_notification_preferences, name: :index_thredded_notification_preferences_on_messageboard_id
7
- remove_index :thredded_notification_preferences, name: :index_thredded_notification_preferences_on_user_id
8
- rename_table :thredded_notification_preferences, :thredded_user_messageboard_preferences
9
- remove_column :thredded_user_messageboard_preferences, :notifications_for_private_topics
10
- change_column_null :thredded_user_messageboard_preferences, :notify_on_mention, false
11
- add_column :thredded_user_preferences, :notify_on_mention, :boolean, default: true, null: false
12
- add_column :thredded_user_preferences, :notify_on_message, :boolean, default: true, null: false
13
- add_index :thredded_user_messageboard_preferences, [:user_id, :messageboard_id], unique: true, name: :thredded_user_messageboard_preferences_user_id_messageboard_id
14
- remove_column :thredded_user_preferences, :time_zone
15
- remove_column :thredded_messageboards, :filter
16
- remove_column :thredded_posts, :filter
17
- remove_column :thredded_private_posts, :filter
18
- drop_table :thredded_user_topic_reads
19
- %i(topic private_topic).each do |topics_table|
20
- table_name = :"thredded_user_#{topics_table}_read_states"
21
- create_table table_name do |t|
22
- t.integer :user_id, null: false
23
- t.integer :postable_id, null: false
24
- t.integer :page, default: 1, null: false
25
- t.timestamp :read_at, null: false
26
- end
27
- add_index table_name, [:user_id, :postable_id], name: :"#{table_name}_user_postable", unique: true
28
- end
29
- remove_column :thredded_private_users, :read
30
- remove_index :thredded_private_users, name: :index_thredded_private_users_on_read
31
- end
32
-
33
- def down
34
- add_column :thredded_private_users, :read, :boolean, default: false
35
- add_index :thredded_private_users, :read, name: :index_thredded_private_users_on_read
36
- drop_table :thredded_user_topic_read_states
37
- drop_table :thredded_user_private_topic_read_states
38
- create_table :thredded_user_topic_reads do |t|
39
- t.integer :user_id, null: false
40
- t.integer :topic_id, null: false
41
- t.integer :post_id, null: false
42
- t.integer :posts_count, default: 0, null: false
43
- t.integer :page, default: 1, null: false
44
- t.timestamps null: false
45
- end
46
- add_index :thredded_user_topic_reads, [:topic_id], name: :index_thredded_user_topic_reads_on_topic_id
47
- add_index :thredded_user_topic_reads, [:user_id, :topic_id], name: :index_thredded_user_topic_reads_on_user_id_and_topic_id, unique: true
48
- add_column :thredded_private_posts, :filter, :string, default: 'markdown', null: false
49
- add_column :thredded_posts, :filter, :string, default: 'markdown', null: false
50
- add_column :thredded_messageboards, :filter, :string, default: 'markdown', null: false
51
- add_column :thredded_user_preferences, :time_zone, :string, limit: 191, default: 'Eastern Time (US & Canada)'
52
- change_column_null :thredded_user_messageboard_preferences, :notify_on_mention, true
53
- remove_index :thredded_user_messageboard_preferences, name: :thredded_user_messageboard_preferences_user_id_messageboard_id
54
- rename_table :thredded_user_messageboard_preferences, :thredded_notification_preferences
55
- add_index :thredded_notification_preferences, [:messageboard_id], name: :index_thredded_notification_preferences_on_messageboard_id
56
- add_index :thredded_notification_preferences, [:user_id], name: :index_thredded_notification_preferences_on_user_id
57
- add_column :thredded_notification_preferences, :notify_on_message, :boolean, default: true
58
- remove_column :thredded_user_preferences, :notify_on_mention
59
- remove_column :thredded_user_preferences, :notify_on_message
60
- end
61
- end
62
- # rubocop:enable Metrics/LineLength
63
- # rubocop:enable Metrics/MethodLength
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
- class UpgradeV03ToV04 < ActiveRecord::Migration
3
- def up
4
- create_table :thredded_messageboard_groups do |t|
5
- t.string :name
6
- t.timestamps null: false
7
- end
8
-
9
- add_column :thredded_messageboards, :messageboard_group_id, :integer
10
- add_index :thredded_messageboards, [:messageboard_group_id],
11
- name: :index_thredded_messageboards_on_messageboard_group_id
12
- end
13
- end
@@ -1,56 +0,0 @@
1
- # frozen_string_literal: true
2
- # rubocop:disable Metrics/MethodLength
3
- class UpgradeV04ToV05 < ActiveRecord::Migration
4
- def change
5
- # Topic following
6
- create_table :thredded_user_topic_follows do |t|
7
- t.integer :user_id, null: false
8
- t.integer :topic_id, null: false
9
- t.datetime :created_at, null: false
10
- t.integer :reason, limit: 1
11
- t.index [:user_id, :topic_id], name: :thredded_user_topic_follows_user_topic, unique: true
12
- end
13
-
14
- # Moderation
15
- change_table :thredded_posts, bulk: true do |t|
16
- t.integer :moderation_state, null: false, default: 1
17
- t.index [:moderation_state, :updated_at],
18
- order: { updated_at: :asc },
19
- name: :index_thredded_posts_for_display
20
- end
21
- change_column_default :thredded_posts, :moderation_state, from: 1, to: nil
22
-
23
- change_table :thredded_topics, bulk: true do |t|
24
- t.integer :moderation_state, null: false, default: 1
25
- t.index %i(moderation_state sticky updated_at),
26
- order: { sticky: :desc, updated_at: :desc },
27
- name: :index_thredded_topics_for_display
28
- end
29
- change_column_default :thredded_topics, :moderation_state, from: 1, to: nil
30
-
31
- change_table :thredded_user_details do |t|
32
- t.integer :moderation_state, null: false, default: 1
33
- t.timestamp :moderation_state_changed_at
34
- t.index %i(moderation_state moderation_state_changed_at),
35
- order: { moderation_state_changed_at: :desc },
36
- name: :index_thredded_user_details_for_moderations
37
- end
38
- change_column_default :thredded_user_details, :moderation_state, from: 1, to: 0 # pending_moderation
39
-
40
- create_table :thredded_post_moderation_records do |t|
41
- t.references :post
42
- t.references :messageboard
43
- t.text :post_content, limit: 65_535
44
- t.references :post_user
45
- t.text :post_user_name
46
- t.references :moderator
47
- t.integer :moderation_state, null: false
48
- t.integer :previous_moderation_state, null: false
49
- t.timestamp :created_at, null: false
50
- t.index [:messageboard_id, :created_at],
51
- order: { created_at: :desc },
52
- name: :index_thredded_moderation_records_for_display
53
- end
54
- end
55
- end
56
- # rubocop:enable Metrics/MethodLength