thredded 0.12.1 → 0.12.2

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