Elixir/Phoenixでウェブサービスを作っている22
Done:
- ブラウザ
- this.props.childrenを上書きしてるので修正
- children -> descendants
- ItemTreeComponentに与えるprops見直し
- goal_tree全体は含まない
- ツリー全体に関わる処理はsubscribe()でやる
- JsonPath入れる
- やめ。insertなどできるモデルを導入。
- 木構造を扱うライブラリの調査
- joaonuno/tree-model-js
- afiore/arboreal
- tree-model-jsかな……
- joaonuno/tree-model-jsパッケージの導入。
- できた
- r7kamura/key-stringパッケージの導入。
- できた
- keydown event処理をItemTreeComponentからdispatchするようにした
- ItemTreeComponentに持ってる方がおかしいので、どっかもっと上の方のコンポーネントで処理した方が良いかも
- handleEvent()をItemTreeComponentからGoalAppComponentに移した
- this.props.childrenを上書きしてるので修正
Todo:
- ブラウザ
- #wrapの高さがセクションの倍数になるように動的に変更
- ツリー全体を展開する
- 上下移動(要素の有無を見る)
- jk
- 右移動(要素の有無を見る)
- h
- 左移動(要素の有無を見る)
- l
- new/create
- n: 新規、enterで作成
- edit/update
- e: 編集、enterで更新
- delete
- X: 削除
- copy/cut/paste
- c: 単体コピー
- C: サブツリー全体をコピー
- x: カット
- v: 下にペースト
- V: 上にペースト
- status切り替え
- f: forward
- b: back
- q: close
- タブ
- システムメニュー
- サインイン/サインアウト
- ユーザーメニュー
- アクティビティ
- ユーザー/グループ...
- アクティビティ
- システムメニュー
- オフライン対応
- すごく欲しいがやらない
- 当初想定より簡単にできるかも
- サーバ
- Activity(activities)
- Status(statuses)
- id
- name
- position
- enable
- ユーザー定義
- デフォルト
- 0: todo
- 1: doing
- 2: done
- -1: close
- done/closeは特別にしたいな……
- 面倒くさいなこれ。固定にしよっかな
- デフォルト
- Group(groups)
- 1ユーザー1グループ作る?
- id
- name
- Membership(memberships)
- user_id
- group_id
- pending
- 操作権限チェックを入れる
- ルート操作の防止を入れる
- /goals/:idを/goals/:hash_digestにする
- User.nickにunique属性つける
- check_descendants!でArgumentErrorにしてるところを独自例外に変える
- on_delete: :delete_allと再帰クエリでどっちが速いか調べる
Memo:
- CSS3 flex
- JSONPath
- JavaScript用: s3u/JSONPath
- こっちは多分要る
- Erlang用: GeneStevens/jsonpath
- こっちはいらないと思うが、1つのゴールを返すとき先祖も付けて返す必要ありそう
- JavaScript用: s3u/JSONPath
- jsでスムーススクロールする方法
- jsでマウスホイールイベントを取得する方法
Programming Phoenix: Productive; Reliable; Fast
- 作者: Chris Mccord,Bruce Tate,Jose Valim
- 出版社/メーカー: Pragmatic Bookshelf
- 発売日: 2016/04/11
- メディア: ペーパーバック
- この商品を含むブログを見る