From c2cc572d734cebc12a8827add907afb27c7a83a9 Mon Sep 17 00:00:00 2001
From: drusepth
Date: Mon, 15 Aug 2022 13:28:00 -0700
Subject: [PATCH 1/5] small efficiency boost
---
app/views/thredded/posts/_post.html.erb | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/app/views/thredded/posts/_post.html.erb b/app/views/thredded/posts/_post.html.erb
index 3d6306b4..c1a7ef7f 100644
--- a/app/views/thredded/posts/_post.html.erb
+++ b/app/views/thredded/posts/_post.html.erb
@@ -3,18 +3,19 @@
blocked_post = user_signed_in? && post.user.present? && post.user.blocked_by?(current_user)
%>
-<%
- # Mute the post if it's one line that starts with ( and ends with )
- muted_post = post.present? && post.to_model.content.split("\n").reject(&:empty?).all? { |paragraph| paragraph.strip.start_with?('(') && paragraph.strip.end_with?(')') }
- muted_post_classes = 'muted-thredded-post'
-%>
-
<% if blocked_post %>
1 message hidden.
<% else %>
+
+ <%
+ # Mute the post if it's one line that starts with ( and ends with )
+ muted_post = post.present? && post.to_model.content.split("\n").reject(&:empty?).all? { |paragraph| paragraph.strip.start_with?('(') && paragraph.strip.end_with?(')') }
+ muted_post_classes = 'muted-thredded-post'
+ %>
+
<%= render 'thredded/posts_common/before_first_unread_post', post: post if post.first_unread_in_page? %>
<%= content_tag :article, id: dom_id(post), class: "thredded--post thredded--#{post.read_state}--post #{muted_post ? muted_post_classes : 'card'}" do %>
<%= render 'thredded/posts_common/actions', post: post, actions: local_assigns[:actions] %>
From c9de578e36ec32b73618f34c2df0967e58e90fd4 Mon Sep 17 00:00:00 2001
From: drusepth
Date: Mon, 15 Aug 2022 22:23:20 -0700
Subject: [PATCH 2/5] pull in latest thredded and add db migration for it
---
Gemfile | 3 +
Gemfile.lock | 180 +++++++++---------
app/controllers/thredded_proxy_controller.rb | 2 +
app/views/thredded/posts/_post.html.erb | 3 +-
.../thredded/posts_common/_actions2.html.erb | 27 +++
...6051024_add_thredded_moderation_indices.rb | 6 +
db/schema.rb | 4 +-
7 files changed, 132 insertions(+), 93 deletions(-)
create mode 100644 app/views/thredded/posts_common/_actions2.html.erb
create mode 100644 db/migrate/20220816051024_add_thredded_moderation_indices.rb
diff --git a/Gemfile b/Gemfile
index 097a3176..9bda1734 100644
--- a/Gemfile
+++ b/Gemfile
@@ -74,8 +74,11 @@ gem 'barnes'
# Forum
gem 'thredded', git: 'https://github.com/indentlabs/thredded.git', branch: 'feature/report-posts'
+# gem 'thredded', path: "../thredded"
+
# gem 'thredded', git: 'https://github.com/thredded/thredded', branch: 'master'
# gem 'thredded', git: 'https://github.com/sudara/thredded', branch: 'master'
+
gem 'rails-ujs'
gem 'language_filter'
gem 'onebox', git: 'https://github.com/indentlabs/onebox.git', branch: 'notebook-engine'
diff --git a/Gemfile.lock b/Gemfile.lock
index 933b9ae0..23c1f334 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -7,7 +7,7 @@ GIT
GIT
remote: https://github.com/indentlabs/onebox.git
- revision: fa5addc8d1ba6e988f54a7c4a83a770ed1d638ce
+ revision: a9407791e1e870abb49271eca727719fb2f53917
branch: notebook-engine
specs:
onebox (2.2.19)
@@ -26,13 +26,13 @@ GIT
GIT
remote: https://github.com/indentlabs/thredded.git
- revision: 6ed40273e4696fc4f32013e4f2a101ff8658b960
+ revision: 262c55ba1777304061bec5c6c3b99a67ddfb8864
branch: feature/report-posts
specs:
- thredded (0.16.16)
+ thredded (1.0.1)
active_record_union (>= 1.3.0)
autoprefixer-rails
- db_text_search (~> 0.3.2)
+ db_text_search
friendly_id
html-pipeline
htmlentities
@@ -43,7 +43,7 @@ GIT
nokogiri
onebox (>= 1.8.99)
pundit (>= 1.1.0)
- rails (>= 4.2.10, != 6.0.0.rc2)
+ rails (>= 5.2.0, != 6.0.0.rc2)
rails_gravatar
rinku
sanitize
@@ -54,40 +54,40 @@ GIT
GEM
remote: https://rubygems.org/
specs:
- actioncable (6.1.4.6)
- actionpack (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ actioncable (6.1.6.1)
+ actionpack (= 6.1.6.1)
+ activesupport (= 6.1.6.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
- actionmailbox (6.1.4.6)
- actionpack (= 6.1.4.6)
- activejob (= 6.1.4.6)
- activerecord (= 6.1.4.6)
- activestorage (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ actionmailbox (6.1.6.1)
+ actionpack (= 6.1.6.1)
+ activejob (= 6.1.6.1)
+ activerecord (= 6.1.6.1)
+ activestorage (= 6.1.6.1)
+ activesupport (= 6.1.6.1)
mail (>= 2.7.1)
- actionmailer (6.1.4.6)
- actionpack (= 6.1.4.6)
- actionview (= 6.1.4.6)
- activejob (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ actionmailer (6.1.6.1)
+ actionpack (= 6.1.6.1)
+ actionview (= 6.1.6.1)
+ activejob (= 6.1.6.1)
+ activesupport (= 6.1.6.1)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
- actionpack (6.1.4.6)
- actionview (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ actionpack (6.1.6.1)
+ actionview (= 6.1.6.1)
+ activesupport (= 6.1.6.1)
rack (~> 2.0, >= 2.0.9)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
- actiontext (6.1.4.6)
- actionpack (= 6.1.4.6)
- activerecord (= 6.1.4.6)
- activestorage (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ actiontext (6.1.6.1)
+ actionpack (= 6.1.6.1)
+ activerecord (= 6.1.6.1)
+ activestorage (= 6.1.6.1)
+ activesupport (= 6.1.6.1)
nokogiri (>= 1.8.5)
- actionview (6.1.4.6)
- activesupport (= 6.1.4.6)
+ actionview (6.1.6.1)
+ activesupport (= 6.1.6.1)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
@@ -99,26 +99,26 @@ GEM
activemodel (>= 5.2.0)
activestorage (>= 5.2.0)
activesupport (>= 5.2.0)
- activejob (6.1.4.6)
- activesupport (= 6.1.4.6)
+ activejob (6.1.6.1)
+ activesupport (= 6.1.6.1)
globalid (>= 0.3.6)
- activemodel (6.1.4.6)
- activesupport (= 6.1.4.6)
+ activemodel (6.1.6.1)
+ activesupport (= 6.1.6.1)
activemodel-serializers-xml (1.0.2)
activemodel (> 5.x)
activesupport (> 5.x)
builder (~> 3.1)
- activerecord (6.1.4.6)
- activemodel (= 6.1.4.6)
- activesupport (= 6.1.4.6)
- activestorage (6.1.4.6)
- actionpack (= 6.1.4.6)
- activejob (= 6.1.4.6)
- activerecord (= 6.1.4.6)
- activesupport (= 6.1.4.6)
- marcel (~> 1.0.0)
+ activerecord (6.1.6.1)
+ activemodel (= 6.1.6.1)
+ activesupport (= 6.1.6.1)
+ activestorage (6.1.6.1)
+ actionpack (= 6.1.6.1)
+ activejob (= 6.1.6.1)
+ activerecord (= 6.1.6.1)
+ activesupport (= 6.1.6.1)
+ marcel (~> 1.0)
mini_mime (>= 1.1.0)
- activesupport (6.1.4.6)
+ activesupport (6.1.6.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
@@ -130,7 +130,7 @@ GEM
public_suffix (>= 2.0.2, < 5.0)
authority (3.3.0)
activesupport (>= 3.0.0)
- autoprefixer-rails (10.3.3.0)
+ autoprefixer-rails (10.4.7.0)
execjs (~> 2)
aws-eventstream (1.2.0)
aws-partitions (1.558.0)
@@ -1308,8 +1308,8 @@ GEM
database_cleaner-core (2.0.1)
dateslices (0.0.4)
rails (> 4)
- db_text_search (0.3.2)
- activerecord (>= 4.1.15, < 7.0)
+ db_text_search (1.0.0)
+ activerecord (>= 4.1.15)
debug_inspector (1.1.0)
devise (4.8.1)
bcrypt (~> 3.0)
@@ -1329,7 +1329,7 @@ GEM
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
engtagger (0.2.2)
- erubi (1.10.0)
+ erubi (1.11.0)
event_emitter (0.2.6)
eventmachine (1.2.7)
execjs (2.8.1)
@@ -1355,7 +1355,7 @@ GEM
haml (5.2.2)
temple (>= 0.8.0)
tilt
- html-pipeline (2.14.0)
+ html-pipeline (2.14.2)
activesupport (>= 2)
nokogiri (>= 1.4)
htmlentities (4.3.4)
@@ -1370,7 +1370,7 @@ GEM
http-form_data (2.3.0)
http-parser (1.2.3)
ffi-compiler (>= 1.0, < 2.0)
- i18n (1.10.0)
+ i18n (1.12.0)
concurrent-ruby (~> 1.0)
ibm_cloud_sdk_core (1.1.3)
concurrent-ruby (~> 1.0)
@@ -1386,7 +1386,7 @@ GEM
image_processing (1.12.2)
mini_magick (>= 4.9.5, < 5)
ruby-vips (>= 2.0.17, < 3)
- inline_svg (1.7.2)
+ inline_svg (1.8.0)
activesupport (>= 3.0)
nokogiri (>= 1.6)
jmespath (1.6.0)
@@ -1398,19 +1398,19 @@ GEM
railties (>= 3.2.16)
json (2.5.1)
jwt (2.2.3)
- kaminari (1.2.1)
+ kaminari (1.2.2)
activesupport (>= 4.1.0)
- kaminari-actionview (= 1.2.1)
- kaminari-activerecord (= 1.2.1)
- kaminari-core (= 1.2.1)
- kaminari-actionview (1.2.1)
+ kaminari-actionview (= 1.2.2)
+ kaminari-activerecord (= 1.2.2)
+ kaminari-core (= 1.2.2)
+ kaminari-actionview (1.2.2)
actionview
- kaminari-core (= 1.2.1)
- kaminari-activerecord (1.2.1)
+ kaminari-core (= 1.2.2)
+ kaminari-activerecord (1.2.2)
activerecord
- kaminari-core (= 1.2.1)
- kaminari-core (1.2.1)
- kramdown (2.3.1)
+ kaminari-core (= 1.2.2)
+ kaminari-core (1.2.2)
+ kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
@@ -1420,7 +1420,7 @@ GEM
listen (3.7.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
- loofah (2.15.0)
+ loofah (2.18.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
mail (2.7.1)
@@ -1445,7 +1445,7 @@ GEM
mini_portile2 (2.8.0)
mini_racer (0.6.2)
libv8-node (~> 16.10.0.0)
- minitest (5.15.0)
+ minitest (5.16.2)
multi_json (1.15.0)
multipart-post (2.1.1)
mustache (1.1.1)
@@ -1453,10 +1453,10 @@ GEM
netrc (0.11.0)
newrelic_rpm (8.5.0)
nio4r (2.5.8)
- nokogiri (1.13.6)
+ nokogiri (1.13.8)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
- nokogiri (1.13.6-x86_64-linux)
+ nokogiri (1.13.8-x86_64-linux)
racc (~> 1.4)
opus-ruby (1.0.1)
ffi
@@ -1480,15 +1480,15 @@ GEM
pry (0.14.1)
coderay (~> 1.1)
method_source (~> 1.0)
- public_suffix (4.0.6)
+ public_suffix (4.0.7)
puma (5.6.4)
nio4r (~> 2.0)
puma-heroku (2.0.0)
puma (>= 5.0, < 6.0)
- pundit (2.1.1)
+ pundit (2.2.0)
activesupport (>= 3.0.0)
racc (1.6.0)
- rack (2.2.3)
+ rack (2.2.4)
rack-mini-profiler (3.0.0)
rack (>= 1.2.0)
rack-pjax (1.1.0)
@@ -1496,27 +1496,27 @@ GEM
rack (>= 1.1)
rack-proxy (0.7.0)
rack
- rack-test (1.1.0)
- rack (>= 1.0, < 3)
- rails (6.1.4.6)
- actioncable (= 6.1.4.6)
- actionmailbox (= 6.1.4.6)
- actionmailer (= 6.1.4.6)
- actionpack (= 6.1.4.6)
- actiontext (= 6.1.4.6)
- actionview (= 6.1.4.6)
- activejob (= 6.1.4.6)
- activemodel (= 6.1.4.6)
- activerecord (= 6.1.4.6)
- activestorage (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ rack-test (2.0.2)
+ rack (>= 1.3)
+ rails (6.1.6.1)
+ actioncable (= 6.1.6.1)
+ actionmailbox (= 6.1.6.1)
+ actionmailer (= 6.1.6.1)
+ actionpack (= 6.1.6.1)
+ actiontext (= 6.1.6.1)
+ actionview (= 6.1.6.1)
+ activejob (= 6.1.6.1)
+ activemodel (= 6.1.6.1)
+ activerecord (= 6.1.6.1)
+ activestorage (= 6.1.6.1)
+ activesupport (= 6.1.6.1)
bundler (>= 1.15.0)
- railties (= 6.1.4.6)
+ railties (= 6.1.6.1)
sprockets-rails (>= 2.0.0)
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
- rails-html-sanitizer (1.4.2)
+ rails-html-sanitizer (1.4.3)
loofah (~> 2.3)
rails-jquery-autocomplete (1.0.5)
rails (>= 3.2)
@@ -1536,11 +1536,11 @@ GEM
sassc-rails (>= 1.3, < 3)
rails_gravatar (1.0.4)
actionview
- railties (6.1.4.6)
- actionpack (= 6.1.4.6)
- activesupport (= 6.1.4.6)
+ railties (6.1.6.1)
+ actionpack (= 6.1.6.1)
+ activesupport (= 6.1.6.1)
method_source
- rake (>= 0.13)
+ rake (>= 12.2)
thor (~> 1.0)
rake (13.0.6)
rb-fsevent (0.11.0)
@@ -1622,10 +1622,10 @@ GEM
textstat (0.1.7)
text-hyphen (~> 1.4, >= 1.4.1)
thor (1.2.1)
- tilt (2.0.10)
+ tilt (2.0.11)
timeago_js (3.0.2.2)
tribute (3.6.0.0)
- tzinfo (2.0.4)
+ tzinfo (2.0.5)
concurrent-ruby (~> 1.0)
uglifier (4.2.0)
execjs (>= 0.3.0, < 3)
@@ -1654,7 +1654,7 @@ GEM
websocket-extensions (0.1.5)
word_count_analyzer (1.0.1)
engtagger
- zeitwerk (2.5.4)
+ zeitwerk (2.6.0)
PLATFORMS
ruby
diff --git a/app/controllers/thredded_proxy_controller.rb b/app/controllers/thredded_proxy_controller.rb
index 4c408ffe..baf9d06b 100644
--- a/app/controllers/thredded_proxy_controller.rb
+++ b/app/controllers/thredded_proxy_controller.rb
@@ -28,4 +28,6 @@ class ThreddedProxyController < ApplicationController
document = ForumsProsifyService.save_to_document(current_user, topic)
redirect_to document, notice: "Thread saved to document!"
end
+
+
end
diff --git a/app/views/thredded/posts/_post.html.erb b/app/views/thredded/posts/_post.html.erb
index c1a7ef7f..d744516e 100644
--- a/app/views/thredded/posts/_post.html.erb
+++ b/app/views/thredded/posts/_post.html.erb
@@ -9,7 +9,6 @@
<% else %>
-
<%
# Mute the post if it's one line that starts with ( and ends with )
muted_post = post.present? && post.to_model.content.split("\n").reject(&:empty?).all? { |paragraph| paragraph.strip.start_with?('(') && paragraph.strip.end_with?(')') }
@@ -29,4 +28,4 @@
<% end %>
<% end %>
-<% end %>
\ No newline at end of file
+<% end %>
diff --git a/app/views/thredded/posts_common/_actions2.html.erb b/app/views/thredded/posts_common/_actions2.html.erb
new file mode 100644
index 00000000..60761c31
--- /dev/null
+++ b/app/views/thredded/posts_common/_actions2.html.erb
@@ -0,0 +1,27 @@
+<% actions ||= {} %>
+<% actions_html = capture do %>
+ <%= view_hooks.post_common.actions.render self, post: post do %>
+ <% if actions[:quote] && post.can_reply? %>
+ <%= render 'thredded/posts_common/actions/quote', post: post %>
+ <% end %>
+ <% if post.can_update? %>
+ <%= render 'thredded/posts_common/actions/edit', post: post %>
+ <% end %>
+ <% if post.can_destroy? %>
+ <%= render 'thredded/posts_common/actions/delete', post: post %>
+ <% end %>
+ <% if post.read_state %>
+ <%= view_hooks.post_common.mark_as_unread.render self, post: post do %>
+ <%= render 'thredded/posts_common/actions/mark_as_unread', post: post %>
+ <% end %>
+ <% end %>
+ <% end %>
+<% end %>
+<%- if actions_html.present? %>
+
+ <%= inline_svg_tag 'thredded/three-dot-menu.svg', class: 'thredded--post--dropdown--toggle' %>
+
+ <%= actions_html %>
+
+
+<% end %>
\ No newline at end of file
diff --git a/db/migrate/20220816051024_add_thredded_moderation_indices.rb b/db/migrate/20220816051024_add_thredded_moderation_indices.rb
new file mode 100644
index 00000000..97cf65aa
--- /dev/null
+++ b/db/migrate/20220816051024_add_thredded_moderation_indices.rb
@@ -0,0 +1,6 @@
+class AddThreddedModerationIndices < ActiveRecord::Migration[6.1]
+ def change
+ add_index :thredded_posts, :created_at
+ add_index :thredded_posts, [:created_at, :postable_id]
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 187d87ad..a9fdac14 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 2021_10_27_065954) do
+ActiveRecord::Schema.define(version: 2022_08_16_051024) do
create_table "active_storage_attachments", force: :cascade do |t|
t.string "name", null: false
@@ -3184,6 +3184,8 @@ ActiveRecord::Schema.define(version: 2021_10_27_065954) do
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "deleted_at"
+ t.index ["created_at", "postable_id"], name: "index_thredded_posts_on_created_at_and_postable_id"
+ t.index ["created_at"], name: "index_thredded_posts_on_created_at"
t.index ["deleted_at", "messageboard_id"], name: "index_thredded_posts_on_deleted_at_and_messageboard_id"
t.index ["deleted_at", "postable_id"], name: "index_thredded_posts_on_deleted_at_and_postable_id"
t.index ["deleted_at", "user_id"], name: "index_thredded_posts_on_deleted_at_and_user_id"
From bda757f343f1e917041c9bd891e54deab527a324 Mon Sep 17 00:00:00 2001
From: drusepth
Date: Wed, 17 Aug 2022 14:52:42 -0700
Subject: [PATCH 3/5] add index for [deleted_at, id] on thredded
---
Gemfile | 2 +-
Gemfile.lock | 2 +-
app/views/thredded/users/_link.html.erb | 6 ++++++
...0220817213907_add_deleted_at_and_id_index_to_thredded.rb | 5 +++++
db/schema.rb | 3 ++-
5 files changed, 15 insertions(+), 3 deletions(-)
create mode 100644 db/migrate/20220817213907_add_deleted_at_and_id_index_to_thredded.rb
diff --git a/Gemfile b/Gemfile
index 9bda1734..c4a649e9 100644
--- a/Gemfile
+++ b/Gemfile
@@ -76,7 +76,7 @@ gem 'barnes'
gem 'thredded', git: 'https://github.com/indentlabs/thredded.git', branch: 'feature/report-posts'
# gem 'thredded', path: "../thredded"
-# gem 'thredded', git: 'https://github.com/thredded/thredded', branch: 'master'
+# gem 'thredded'
# gem 'thredded', git: 'https://github.com/sudara/thredded', branch: 'master'
gem 'rails-ujs'
diff --git a/Gemfile.lock b/Gemfile.lock
index 23c1f334..670e9524 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -26,7 +26,7 @@ GIT
GIT
remote: https://github.com/indentlabs/thredded.git
- revision: 262c55ba1777304061bec5c6c3b99a67ddfb8864
+ revision: f5200ea1a4311791552b99c9ce8c2f023c521bf1
branch: feature/report-posts
specs:
thredded (1.0.1)
diff --git a/app/views/thredded/users/_link.html.erb b/app/views/thredded/users/_link.html.erb
index 6268cc76..66736bd7 100644
--- a/app/views/thredded/users/_link.html.erb
+++ b/app/views/thredded/users/_link.html.erb
@@ -6,8 +6,14 @@
<%= user.thredded_display_name %>
<% else %>
+
<%= user.thredded_display_name %>
+ <% if user.forum_moderator? %>
+
+ health_and_safety
+
+ <% end %>
<%= render partial: 'thredded/users/badge', locals: { user: user } %>
<% end %>
diff --git a/db/migrate/20220817213907_add_deleted_at_and_id_index_to_thredded.rb b/db/migrate/20220817213907_add_deleted_at_and_id_index_to_thredded.rb
new file mode 100644
index 00000000..98215b49
--- /dev/null
+++ b/db/migrate/20220817213907_add_deleted_at_and_id_index_to_thredded.rb
@@ -0,0 +1,5 @@
+class AddDeletedAtAndIdIndexToThredded < ActiveRecord::Migration[6.1]
+ def change
+ add_index :thredded_posts, [:id, :deleted_at]
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index a9fdac14..99fc2352 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 2022_08_16_051024) do
+ActiveRecord::Schema.define(version: 2022_08_17_213907) do
create_table "active_storage_attachments", force: :cascade do |t|
t.string "name", null: false
@@ -3190,6 +3190,7 @@ ActiveRecord::Schema.define(version: 2022_08_16_051024) do
t.index ["deleted_at", "postable_id"], name: "index_thredded_posts_on_deleted_at_and_postable_id"
t.index ["deleted_at", "user_id"], name: "index_thredded_posts_on_deleted_at_and_user_id"
t.index ["deleted_at"], name: "index_thredded_posts_on_deleted_at"
+ t.index ["id", "deleted_at"], name: "index_thredded_posts_on_id_and_deleted_at"
t.index ["messageboard_id"], name: "index_thredded_posts_on_messageboard_id"
t.index ["moderation_state", "updated_at"], name: "index_thredded_posts_for_display"
t.index ["postable_id"], name: "index_thredded_posts_on_postable_id"
From f09270737fbf304dc82ba29e4972dd3bfbfec69d Mon Sep 17 00:00:00 2001
From: drusepth
Date: Wed, 17 Aug 2022 23:31:55 -0700
Subject: [PATCH 4/5] yaml fallback for changelogs
---
app/controllers/content_controller.rb | 5 ++++-
app/models/concerns/has_changelog.rb | 1 +
config/environments/development.rb | 4 ++++
config/environments/production.rb | 4 ++++
4 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/app/controllers/content_controller.rb b/app/controllers/content_controller.rb
index 8d115431..94b4282e 100644
--- a/app/controllers/content_controller.rb
+++ b/app/controllers/content_controller.rb
@@ -508,7 +508,10 @@ class ContentController < ApplicationController
@attribute_field = AttributeField.find_by(id: params[:field_id].to_i)
attribute_value = @attribute_field.attribute_values.order('created_at desc').find_or_initialize_by(entity_params)
attribute_value.user_id ||= current_user.id
- attribute_value.value = field_params.fetch('value', '').to_i
+
+ new_universe_id = field_params.fetch('value', nil).to_i
+ new_universe_id = nil if new_universe_id == 0
+ attribute_value.value = new_universe_id
attribute_value.save!
@content = entity_params.fetch('entity_type').constantize.find_by(
diff --git a/app/models/concerns/has_changelog.rb b/app/models/concerns/has_changelog.rb
index 2d543733..5dc9eab6 100644
--- a/app/models/concerns/has_changelog.rb
+++ b/app/models/concerns/has_changelog.rb
@@ -40,6 +40,7 @@ module HasChangelog
before_update do
if self.is_a?(Attribute)
# todo how to get current_user?
+
ContentChangeEvent.create(
user: find_current_user,
changed_fields: changes,
diff --git a/config/environments/development.rb b/config/environments/development.rb
index eef5b034..121334cb 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -59,6 +59,10 @@ Rails.application.configure do
# routes, locales, etc. This feature depends on the listen gem.
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
+ # Whitelist HashWithIndifferentAccess/TimeWithZone for changelog serialization
+ # config.active_record.yaml_column_permitted_classes = [HashWithIndifferentAccess, ActiveSupport::TimeWithZone, Time]
+ config.active_record.use_yaml_unsafe_load = true
+
# Set test-mode Stripe API key
Stripe.api_key = "sk_test_v37uWbseyPct6PpsfjTa3y1l"
config.stripe_publishable_key = 'pk_test_eXI4iyJ2gR9UOGJyJERvDlHF'
diff --git a/config/environments/production.rb b/config/environments/production.rb
index 5d65c2ce..7bd937d7 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -91,6 +91,10 @@ Rails.application.configure do
# Do not dump schema after migrations.
config.active_record.dump_schema_after_migration = false
+ # Whitelist HashWithIndifferentAccess/TimeWithZone for changelog serialization
+ # config.active_record.yaml_column_permitted_classes = [HashWithIndifferentAccess, ActiveSupport::TimeWithZone, Time]
+ config.active_record.use_yaml_unsafe_load = true
+
# Devise default url options
config.action_mailer.default_url_options = { host: 'www.notebook.ai' }
config.active_job.default_url_options = { host: 'www.notebook.ai' }
From 42038c49c2c4722a7b95d4d34b3f39376fcda899 Mon Sep 17 00:00:00 2001
From: drusepth
Date: Wed, 17 Aug 2022 23:33:22 -0700
Subject: [PATCH 5/5] unused partial
---
.../thredded/posts_common/_actions2.html.erb | 27 -------------------
1 file changed, 27 deletions(-)
delete mode 100644 app/views/thredded/posts_common/_actions2.html.erb
diff --git a/app/views/thredded/posts_common/_actions2.html.erb b/app/views/thredded/posts_common/_actions2.html.erb
deleted file mode 100644
index 60761c31..00000000
--- a/app/views/thredded/posts_common/_actions2.html.erb
+++ /dev/null
@@ -1,27 +0,0 @@
-<% actions ||= {} %>
-<% actions_html = capture do %>
- <%= view_hooks.post_common.actions.render self, post: post do %>
- <% if actions[:quote] && post.can_reply? %>
- <%= render 'thredded/posts_common/actions/quote', post: post %>
- <% end %>
- <% if post.can_update? %>
- <%= render 'thredded/posts_common/actions/edit', post: post %>
- <% end %>
- <% if post.can_destroy? %>
- <%= render 'thredded/posts_common/actions/delete', post: post %>
- <% end %>
- <% if post.read_state %>
- <%= view_hooks.post_common.mark_as_unread.render self, post: post do %>
- <%= render 'thredded/posts_common/actions/mark_as_unread', post: post %>
- <% end %>
- <% end %>
- <% end %>
-<% end %>
-<%- if actions_html.present? %>
-
- <%= inline_svg_tag 'thredded/three-dot-menu.svg', class: 'thredded--post--dropdown--toggle' %>
-
- <%= actions_html %>
-
-
-<% end %>
\ No newline at end of file