bootcamp
bootcamp copied to clipboard
ユーザー一覧にインクリメンタルサーチを追加
Issue
- #5349
概要
ユーザー一覧の全てタブのみにインクリメンタルサーチを設置しました。 検索文字列を入力後、以下の条件でインクリメンタルサーチができるようにしました。
- 現在表示しているユーザーのロールを検索対象にする
- 現在表示しているユーザーのロールでユーザーが存在しない場合はインクリメンタルサーチを非表示とする
- /^[\w-]+$/ にマッチする場合は3文字以上、それ以外は2文字以上の入力が必要
- 検索対象
- ユーザーID(ログイン名)
- ユーザー名
- ユーザー名読み方
- Discord ID
- GitHub ID
- Twitter ID
- facebook URL
- ブログURL
- 自己紹介文
変更確認方法
- ブランチ
feature/add-incremental-search-in-users-list
をローカルに取り込んでください。 -
bin/rails s
でローカル環境を立ち上げてください。 -
komagata
でhttp://localhost:3000/users にアクセスし絞り込み
と表示されているラベルと共にインクリメンタルサーチが存在することを確認してください。その際のユーザーロールは現役生になっています。 - 任意の検索文字列を上記検索対象(現役生)で大文字/小文字の英字、数字、アンダースコア、ハイフンで3文字以上入力し、そのユーザーが現役生の中から検索されることを確認してください。その際検索文字列が2文字以内であれば検索機能が動作しない事も同時に確認してください。また検索中の際は画面にロード中と表示されます。
- また任意の現役生を日本語2文字以上入力し、検索結果が表示されることを確認してください。その際に1文字のみだと検索機能が動作しない事も確認してください。
- インクリメンタルサーチで任意のメンターを検索してください。検索結果にユーザーが表示されず一致するユーザーはいませんと表示されることを確認してください。
- http://localhost:3000/users?target=followings にアクセスし、インクリメンタルサーチが表示されないことを確認してください。
facebookURLを用いたテストについて
fixtures/users.yml
で登録されているユーザーのfacebookURLがFBCに関係のない実在するものが使用されていたため、以前のIssueで全てのユーザーfacebookURLをフィヨルドのURLを使用したものに変更されています。今回のfacebookURLを用いたテストを作成するにあたり個人を特定したかったため、駒形さんに確認し現状使用されていないURLで一意のものに変更致しました。
変更箇所

@machida さん こちらの機能を追加したことでデザインが崩れてしまったため、デザイン依頼をさせていただきます。 申し訳ありませんがよろしくお願いいたします🙇♀️
@ai-24 デザイン修正しましたー
@machida さん ありがとうございました🙇♀️
@machida さん、お疲れ様です。 お忙しい所恐れ入りますが、1つデザインでお願いがあります。
今 test/system/user/tags_test.rb
のテストが落ちているのですが、おそらくクリックしようとしているボタンの上に要素が重なってしまっており、ボタンが押せずテストが落ちているのではないかと考えています。
要素が重なってしまっているのは、フォロー中タブ(おそらくこちらは影響ないと思います)とタグ個別ページ(例 http://localhost:3000/users/tags/%E7%8C%AB )の部分になります。
私の確認不足で先にお伝えできておらず申し訳ありませんでした。
暫定的に書いてくださっているところが関係しているのかわからないのですが、お手隙の際に一度見ていただけますでしょうか😭
よろしくお願いいたします。
@ai-24 返信遅れてすいません🙇♂️ 対応しますー
@ai-24 遅くなってすいません🙇♂️ レビューに回させていただきます。
@daiki0381 レビューお願いできますでしょうか🙏
@machida さん ご対応いただきありがとうございました🙏
@daiki0381 さん レビューありがとうございます! 修正しましたので再レビューお願いできますでしょうか🙏
@daiki0381 さん レビューありがとうございました🙇♀️
@komagata さん チームメンバーのレビューが通りましたので、レビューお願いします!
@ai-24 大変な機能実装お疲れ様です!ありがとうございます!
@komagata さん レビューありがとうございます! debounceの機能だけ、JSの関数として実装してみました。 再度ご確認よろしくお願いします🙇♀️
@machidaさん
app/assets/stylesheets/application/blocks/page-content/_page-content.sass
でコンフリクトが発生しているようなのでご確認いただけますでしょうか🙏
@ai-24 了解ですーコンフリクト解消しておきます〜
@machidaさん ありがとうございます!! よろしくお願いします🙏
@ai-24 @komagata コンフリクト解消しましたー
@machida さん ありがとうございました!!
@komagata さん レビューありがとうございます!
確かにdebounceの機能再利用出来ると良いですね! Vueのmixinは機能そのものを追加するもので、メソッドを生成するためにmixinとして切り出すのは使い方が違っているかもしれないとメンターの方からご教示いただいたので、今回JSの関数として他ファイルに切り出しました。 お手数おかけしますが再レビューお願いできますでしょうか。
@komagata さん いつもレビューありがとうございます! いただいたコメントに返信とコードの修正を行いました。 またご確認よろしくお願いいたします!
@komagata コンフリクト修正しておきました
@machida ありがとうございます〜!
@ai-24 CIが落ちているので修正をお願いします〜
コンフリクト解消のために最新の main を rebase しましたー
@machida コンフリクト解消ありがとうございました!
@komagata total_pagesについてのコメントと落ちていたCIを修正しました。 お手隙の際にご確認よろしくお願いいたします!
@komagata 確認ありがとうございました!