feat(messages): use trix editor in messages

This commit is contained in:
Philipp Rothmann 2023-08-04 10:55:31 +02:00 committed by Philipp Rothmann
parent c4a53caf52
commit ef6d6aa368
14 changed files with 83 additions and 5 deletions

View file

@ -0,0 +1,32 @@
class MigrateMessageBodyToActionText < ActiveRecord::Migration[7.0]
include ActionView::Helpers::TextHelper
class Message < ApplicationRecord
has_rich_text :body
end
def change
reversible do |dir|
dir.up do
rename_column :messages, :body, :body_old
Message.all.each do |message|
message.update(body: simple_format(message.body_old))
message.body.update(record_type: :Message) # action_text_rich_texts uses STI record_type field and has to be set to the real model
end
remove_column :messages, :body_old, :text
end
dir.down do
execute "ALTER TABLE `messages` ADD `body_old` text"
execute "UPDATE `messages` m
INNER JOIN `action_text_rich_texts` a
ON m.id = a.record_id
set m.body_old = a.body"
Message.all.each do |message|
message.update(body_old: strip_tags(message.body_old))
end
execute "DELETE FROM `action_text_rich_texts` WHERE `action_text_rich_texts`.`record_type` = 'Message'"
execute "ALTER TABLE `messages` CHANGE `body_old` `body` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL;"
end
end
end
end

View file

@ -292,7 +292,6 @@ ActiveRecord::Schema[7.0].define(version: 2023_02_15_085312) do
create_table "messages", id: :integer, charset: "utf8mb4", collation: "utf8mb4_general_ci", force: :cascade do |t|
t.integer "sender_id"
t.string "subject", null: false
t.text "body"
t.boolean "private", default: false
t.datetime "created_at", precision: nil
t.integer "reply_to"