User Management(ryuichi-e, akira-s, kaori-t)

タスク 作成

  • フィルタリングに必要なコントロールを表示できる (GW-1173 external_link)

    • checkboxでAdminUserContainerを講読して変更して通知する。
    • All以外をcheckした時、Allをuncheck。
    • ステータス一つだけがcheckされていた場合、もう一度同じところをクリックするとuncheckされない。
    • allをcheckしたら他をuncheck
    • 1~4のタスクを終えた後、マネジメント後に通知するように変更
      • Checkしたステータス情報を配列として"/search-user-status/"に送る
  • ステータス用コントロールの変更でフィルタリングができる (GW-1078 external_link)

    • routeのパスを適切な名前に変えて、mongooseで送るuser情報の追加
      • "/search-user-status/"に変えました!
    • AdminUsersContainer.jsにて
      • client側で送られたステータスがAllとそれ以外だった場合のvalidationを行う
  • インクリメンタルサーチができる(GW-1079 external_link)

    • インクリメンタルサーチ用のInputの作成と文字一文字でも入力された場合、取り消しボタンを表示させる。
    • 取り消しボタンをクリックしたら、Inputの値を空にする。
    • Inputの値を"/search-user-status/"に送る
    • mongoDBを使って部分一致でUser情報のリストを返す機能を追加
  • フィードでソートできる(GW-1080  external_link)

    • テーブルのコラムの横にソートの矢印を入れる
      • 文字数が小さい順 (昇順)
      • 文字数が大きい順 (降順)
    • 最後にクリックしたソートicon(矢印)の値を[ 順, コラム名 ]としてserver側に送らなければない
      • つまり、送る値最後にクリックしたは一つだけ。
      • sortColumn
        • [順番, コラム名]
          • 全パターン
            • [sortOrder: asc, sort: status]
            • [sortOrder: asc, sort: username]
            • [sortOrder: asc, sort: name]
            • [sortOrder: asc, sort: email]
            • [sortOrder: asc, sort: createdAt]
            • [sortOrder: desc, sort: status]
            • [sortOrder: desc, sort: username]
            • [sortOrder: desc, sort: name]
            • [sortOrder: desc, sort: email]
            • [sortOrder: desc, sort: createdAt]
    • ソートの情報を"/search-user-status/"に送る
    • mongoDBを使ってソートの値を受け取り、ユーザー情報の順番かえる機能を追加
  • リセットボタンですべての条件を破棄し、すべてのデータを表示する(GW-1087 external_link)

    • 必要なし?
      • Allのcheck box をtrueにしたら、他ステータスのcheck boxがfalseになるため。
      • Inputに一文字でも入力された場合、取り消しボタンを押せばInputが空欄になるため。

User Managemnetに関してのUML

@startuml skinparam monochrome reverse

title UserManagement のシーケンス図

participant "色んなコントロール達 component(jsx)" as A note left: サービスインスタンス participant "Client AdminUserContainer (js)" as B participant "route apiv3/users.js/search-user-status" as C

A -> B:

B -> B: コントロールの状態を見てクエリObjectを変える

B -> C: /search

C -> C: mongoose package

C --> B: UserのList

B -> B: See State (...)

@enduml

@startuml skinparam monochrome reverse

title UserManagement のユースケース図

usecase UC1 as " ..前提(現在の実装を使う).. Deleted ステータス以外のUserの1ページ目が表示されている

1. ユーザーがコントロール値を変えたとき 2. server/apiv3/users.js/search-user-status

2.1. Database上の該当Statusのデータ(UserのList)をget 2.2. テーブルに表示すべきデータをjsonとして返す

3.テーブルに当てはめる "

@enduml

豆知識

  • インクリメンタルサーチは検索したい単語をすべて入力した上で検索するのではなく、入力のたびごとに即座に候補を表示させる。
  • 挙動
    • インクリメンタルサーチの挙動を以下に例示する。
      • 検索文字列:検索に失敗した
      • 検索対象:検索の動作検証のため検査員が点検を行ったところ、検索に失敗した。
    • 一文字目:検
      • 検索結果:検索の動作検証のため検査員が点検を行ったところ、索に失敗した
    • 二文字目:検索
      • 検索結果:検索の動作検証のため検査員が点検を行ったところ、検索に失敗した。
    • 三文字目:検索に
      • 検索結果:検索の動作検証のため検査員が点検を行ったところ、検索に失敗した。

ソート (Sort)

  • ソートは小さい順、大きい順、アルファベット順など、特定のルールに従って、データを並べること
  • 何らかの規則に従ってデータを並べるのが「ソート(sort)」