bootcamp icon indicating copy to clipboard operation
bootcamp copied to clipboard

ユーザー一覧にインクリメンタルサーチを追加

Open ai-24 opened this issue 2 years ago • 18 comments

Issue

  • #5349

概要

ユーザー一覧の全てタブのみにインクリメンタルサーチを設置しました。 検索文字列を入力後、以下の条件でインクリメンタルサーチができるようにしました。

  • 現在表示しているユーザーのロールを検索対象にする
  • 現在表示しているユーザーのロールでユーザーが存在しない場合はインクリメンタルサーチを非表示とする
  • /^[\w-]+$/ にマッチする場合は3文字以上、それ以外は2文字以上の入力が必要
  • 検索対象
    • ユーザーID(ログイン名)
    • ユーザー名
    • ユーザー名読み方
    • Discord ID
    • GitHub ID
    • Twitter ID
    • facebook URL
    • ブログURL
    • 自己紹介文

変更確認方法

  1. ブランチfeature/add-incremental-search-in-users-listをローカルに取り込んでください。
  2. bin/rails sでローカル環境を立ち上げてください。
  3. komagataでhttp://localhost:3000/users にアクセスし絞り込みと表示されているラベルと共にインクリメンタルサーチが存在することを確認してください。その際のユーザーロールは現役生になっています。
  4. 任意の検索文字列を上記検索対象(現役生)で大文字/小文字の英字、数字、アンダースコア、ハイフンで3文字以上入力し、そのユーザーが現役生の中から検索されることを確認してください。その際検索文字列が2文字以内であれば検索機能が動作しない事も同時に確認してください。また検索中の際は画面にロード中と表示されます。
  5. また任意の現役生を日本語2文字以上入力し、検索結果が表示されることを確認してください。その際に1文字のみだと検索機能が動作しない事も確認してください。
  6. インクリメンタルサーチで任意のメンターを検索してください。検索結果にユーザーが表示されず一致するユーザーはいませんと表示されることを確認してください。
  7. http://localhost:3000/users?target=followings にアクセスし、インクリメンタルサーチが表示されないことを確認してください。

facebookURLを用いたテストについて

fixtures/users.ymlで登録されているユーザーのfacebookURLがFBCに関係のない実在するものが使用されていたため、以前のIssueで全てのユーザーfacebookURLをフィヨルドのURLを使用したものに変更されています。今回のfacebookURLを用いたテストを作成するにあたり個人を特定したかったため、駒形さんに確認し現状使用されていないURLで一意のものに変更致しました。

変更箇所

スクリーンショット 2022-09-21 21 50 21

ai-24 avatar Aug 23 '22 13:08 ai-24

@machida さん こちらの機能を追加したことでデザインが崩れてしまったため、デザイン依頼をさせていただきます。 申し訳ありませんがよろしくお願いいたします🙇‍♀️

ai-24 avatar Aug 23 '22 23:08 ai-24

@ai-24 デザイン修正しましたー

machida avatar Aug 31 '22 05:08 machida

@machida さん ありがとうございました🙇‍♀️

ai-24 avatar Sep 01 '22 02:09 ai-24

@machida さん、お疲れ様です。 お忙しい所恐れ入りますが、1つデザインでお願いがあります。

test/system/user/tags_test.rbのテストが落ちているのですが、おそらくクリックしようとしているボタンの上に要素が重なってしまっており、ボタンが押せずテストが落ちているのではないかと考えています。 要素が重なってしまっているのは、フォロー中タブ(おそらくこちらは影響ないと思います)とタグ個別ページ(例 http://localhost:3000/users/tags/%E7%8C%AB )の部分になります。 私の確認不足で先にお伝えできておらず申し訳ありませんでした。 暫定的に書いてくださっているところが関係しているのかわからないのですが、お手隙の際に一度見ていただけますでしょうか😭 よろしくお願いいたします。

ai-24 avatar Sep 01 '22 13:09 ai-24

@ai-24 返信遅れてすいません🙇‍♂️ 対応しますー

machida avatar Sep 21 '22 05:09 machida

@ai-24 遅くなってすいません🙇‍♂️ レビューに回させていただきます。

@daiki0381 レビューお願いできますでしょうか🙏

machida avatar Sep 21 '22 05:09 machida

@machida さん ご対応いただきありがとうございました🙏

ai-24 avatar Sep 21 '22 13:09 ai-24

@daiki0381 さん レビューありがとうございます! 修正しましたので再レビューお願いできますでしょうか🙏

ai-24 avatar Sep 22 '22 04:09 ai-24

@daiki0381 さん レビューありがとうございました🙇‍♀️

@komagata さん チームメンバーのレビューが通りましたので、レビューお願いします!

ai-24 avatar Sep 26 '22 04:09 ai-24

@ai-24 大変な機能実装お疲れ様です!ありがとうございます!

komagata avatar Sep 26 '22 06:09 komagata

@komagata さん レビューありがとうございます! debounceの機能だけ、JSの関数として実装してみました。 再度ご確認よろしくお願いします🙇‍♀️

ai-24 avatar Sep 28 '22 09:09 ai-24

@machidaさん app/assets/stylesheets/application/blocks/page-content/_page-content.sassでコンフリクトが発生しているようなのでご確認いただけますでしょうか🙏

ai-24 avatar Sep 30 '22 04:09 ai-24

@ai-24 了解ですーコンフリクト解消しておきます〜

machida avatar Sep 30 '22 05:09 machida

@machidaさん ありがとうございます!! よろしくお願いします🙏

ai-24 avatar Sep 30 '22 05:09 ai-24

@ai-24 @komagata コンフリクト解消しましたー

machida avatar Sep 30 '22 07:09 machida

@machida さん ありがとうございました!!

ai-24 avatar Sep 30 '22 09:09 ai-24

@komagata さん レビューありがとうございます!

確かにdebounceの機能再利用出来ると良いですね! Vueのmixinは機能そのものを追加するもので、メソッドを生成するためにmixinとして切り出すのは使い方が違っているかもしれないとメンターの方からご教示いただいたので、今回JSの関数として他ファイルに切り出しました。 お手数おかけしますが再レビューお願いできますでしょうか。

ai-24 avatar Oct 11 '22 09:10 ai-24

@komagata さん いつもレビューありがとうございます! いただいたコメントに返信とコードの修正を行いました。 またご確認よろしくお願いいたします!

ai-24 avatar Oct 24 '22 05:10 ai-24

@komagata コンフリクト修正しておきました

machida avatar Nov 02 '22 16:11 machida

@machida ありがとうございます〜!

@ai-24 CIが落ちているので修正をお願いします〜

komagata avatar Nov 07 '22 00:11 komagata

コンフリクト解消のために最新の main を rebase しましたー

machida avatar Nov 09 '22 03:11 machida

@machida コンフリクト解消ありがとうございました!

ai-24 avatar Nov 10 '22 05:11 ai-24

@komagata total_pagesについてのコメントと落ちていたCIを修正しました。 お手隙の際にご確認よろしくお願いいたします!

ai-24 avatar Nov 11 '22 02:11 ai-24

@komagata 確認ありがとうございました!

ai-24 avatar Nov 14 '22 00:11 ai-24