Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

個別のお問い合わせにコメントがつけられるようにした #8262

Open
wants to merge 18 commits into
base: main
Choose a base branch
from

Conversation

ayu-0505
Copy link
Contributor

@ayu-0505 ayu-0505 commented Dec 29, 2024

Issue

概要

個別のお問い合わせページにおいて、コメントがつけられるようにしました。
現在コメント機能を提供しているVueファイルを使用せずに実装するために、slimファイルやJSファイルを新規で作成しています。
(また、大まかな実装方針としてはQ&AのAnswer部分を非Vue化 #8033を参考にしております。)
いくつか変更点にて追加でコメントしています。

変更確認方法

  1. feature/add-comment-form-in-inquiryをローカルに取り込む。
    1. git fetch origin pull/8263/head:feature/add-comment-form-in-inquiry(2度目以降は--forceをつけてください)
    2. git switch feature/add-comment-form-in-inquiry
  2. rails db:seedで初期データにする。
  3. foreman start -f Procfile.devでローカルサーバーを立ち上げる。
  4. 管理者(例: user:komagata, password: testtest)でログインする。
  5. お問い合わせ一覧から任意の個別のお問い合わせページにアクセスし、コメント欄が表示されていることを確認。
  6. 新規作成確認
    1. 適当なコメントをフォームに入力し、プレビューボタンを押すとプレビューに切り替わることを確認。
    2. コメントするボタンをクリックするとコメントが新規作成され、右上にコメントを投稿しました!のトーストが数秒表示されることを確認。
    3. 画面のリロードなしで先ほどの新規コメントが投稿されていることを確認。
    4. 投稿フォームが初期化されているかを確認。
  7. コメント位置ジャンプとリアクション機能確認
    1. コメントに対して、リアクションボタン押下後に適当なリアクションを選択し、正常にリアクションが付与されているか確認。
    2. コメントの日付部分をクリックするとCopiedと数秒表示され、クリップボードにハッシュパラメータ付きURLが保存される。
    3. URLをアドレスバーにペーストしてリロードし、ジャンプできるか確認。
  8. 編集確認
    1. 編集ボタンをクリック。
    2. 既存コメントの編集ができるようになり、コメントを適当に変更。
    3. プレビューボタンを押すとプレビューに切り替わることを確認。
    4. キャンセルボタンを押すと、変更前の既存のコメント内容に戻って編集画面が終了されることを確認。
    5. 再度編集ボタンを押してコメントを適当に変更し、保存するボタンをクリック。
    6. 画面のリロードなしでコメント内容が更新されていることを確認。
  9. 削除確認
    1. コメント右下の削除するボタンをクリック。
    2. 本当に宜しいですか?のダイアログが表示される。
    3. OKを押すと画面のリロードなしで該当コメントが削除されることを確認。
  10. コメント件数による表示制限確認
    1. コメントを9件以上投稿し、画面をリロードする。
      (以下のコードをrails cで行うと素早くできます。userはmachidaさん、commentable_idinquiry1 に該当しています。)
    20.times do |i|
      Comment.create!(description: "test #{i}",
      user_id: 679998234,
      commentable_id: 1044063400,
      commentable_type: "Inquiry")
    end
    
    1. 最大表示コメントが8件分表示され、過去分が折り畳まれた表示になる。コメント読み込みボタンに前のコメント(8/コメント全件数)、または前のコメント(見表示コメント件数)という表示があることを確認。
    2. コメント読み込みボタンを押すごとにリロードなしで8件ずつ表示されていき、コメント読み込みボタンの件数が変化していくことを確認。
スクリーンショット 2025-01-07 11 06 46 スクリーンショット 2025-01-07 11 07 02

Screenshot

変更前

  • お問い合わせにはコメント機能はありません。
スクリーンショット 2025-01-07 10 22 01

変更後

  • コメント投稿フォームが表示されています。
スクリーンショット 2025-01-07 9 46 29
  • コメントが8件より多くなると古いコメントが折りたたまれます。これは既存のコメント機能と同様の動きです。
スクリーンショット 2025-01-07 9 48 19

@ayu-0505 ayu-0505 self-assigned this Dec 29, 2024
後ほどリファクタリングを行う
@ayu-0505 ayu-0505 force-pushed the feature/add-comment-form-in-inquiry branch from 59b517e to e796126 Compare January 6, 2025 03:21
@@ -22,7 +22,12 @@ def create
@comment.user = current_user
@comment.commentable = commentable
if @comment.save
render :create, status: :created
# Inquiry以外はvueでJSONを使用している。コメント機能のJS変換が完了すれば下の'Inquiry'による分岐は不要なので削除してください。
if params[:commentable_type] == 'Inquiry'
Copy link
Contributor Author

@ayu-0505 ayu-0505 Jan 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

こちらのInquiryによる分岐ですが、bootcampアプリ自体の機能のための分岐ではなく、「コメント機能をvueからJS、Hotwireに変更していく過程」で発生している分岐です。
本来は不必要な分岐のため、上記のようにコード内コメントで注釈をつけています。

@@ -35,7 +35,7 @@ def params_for_keyword_search(searched_values = {})
end

def receiver
commentable.user
commentable.respond_to?(:user) ? commentable.user : nil
Copy link
Contributor Author

@ayu-0505 ayu-0505 Jan 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

今までのcommentableに該当するモデルはすべてuserカラムを持っていましたが、Inquiryは外部からの問い合わせのため、userカラムを持っていません。
そのため、commentableuserを使用した処理について、Inquiryのコメントが該当しないようにcomment.rbafter_create_callback.rbにて変更を加えています。

@ayu-0505 ayu-0505 marked this pull request as ready for review January 7, 2025 02:15
@ayu-0505
Copy link
Contributor Author

ayu-0505 commented Jan 7, 2025

@Judeeeee さん、お疲れ様です🍵
もしよろしければこちらのPRについてレビューをいただけますでしょうか??
ご都合的に難しいようでしたら遠慮なくおっしゃってください。
確認のほどよろしくお願いします🙇🏻‍♀️

(追記)
大変申し訳ありません。テストを作成するのを失念しておりました。
数日中にテストを作成いたします。
その後、改めてレビュー依頼を行いたいと思います。
もし今お忙しいようでしたら現段階で断っていただいても構いません🙏

@ayu-0505 ayu-0505 requested review from Judeeeee and removed request for Judeeeee January 7, 2025 03:10
@Judeeeee
Copy link
Contributor

Judeeeee commented Jan 8, 2025

@ayu-0505
お疲れ様です!レビュー依頼ありがとうございます!🙏
現在私の体調が優れず、取り組める見込みが立っていない状態なので他の方に依頼いただけると幸いです💦
折角の機会なので担当したかったのですが、申し訳ないです🙇‍♀️🙇‍♀️

@ayu-0505
Copy link
Contributor Author

ayu-0505 commented Jan 8, 2025

@Judeeeee さん、お疲れ様です🍵
お返事いただきありがとうございます〜了解いたしました🙇🏻‍♀️
体調不良とのことなので、お身体お大事になさってください🍵

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants