Redmineのデスクトップクライアント的なものをnode-webkitで作った②

前回の記事はこちら

Redmineのデスクトップクライアント的なものをnode-webkitで作った - suzan2号の戯れ

なんか凄い時間が立ってしまいましたが、チケットを表示・修正する機能をつけました。

suzan2go/RedNodeKit · GitHub

My Ticketsのタブから、現在自分に割り当てられているチケットの表示・更新ができます。
f:id:suzan2go:20141125002429p:plain

スマホアプリのように下にフックすることで更新もできます。
f:id:suzan2go:20141125002452p:plain

これにはhook.jsを使わせてもらいました。
本当にすごーく簡単にhookでの更新ができるようになりました。

jordansinger/Hook.js · GitHub

チケット一覧の画面でチケットをクリックすると、詳細な情報を表示できます。
f:id:suzan2go:20141125002603p:plain
更新履歴も出してますが、ステータスやメンバーの変更はidで表示されちゃいます。今後なんとかします。
f:id:suzan2go:20141125011439p:plain
以下、編集画面です。メンバーの変更とか、期日の変更とかステータスの変更など簡単な変更をここにすることを想定してます。注記に変更時のコメントを書く感じです。
f:id:suzan2go:20141125002608p:plain

更新したところ

前回の記事のあと今まで自分しか見てなかったんじゃね??というこのブログに200人以上が来てくれたりして、よっしゃー頑張るぞ!!となってたんだけど、仕事のピークも重なってしまい1ヶ月弱立ってしまいました。この3連休と先週末頑張ってやっと使って貰えそうなもんができました。

  • できるようになったこと
    • 自分が担当者のチケットをtwitterアプリ風(今は更新するとこだけだけど…)に表示する。
    • チケットを編集する
  • まだ出来ないこと
    • 自分が担当者のチケットが作成されたら通知する(でもコレは結構しんどい)。
    • 更新履歴の内容をちゃんと表示する(現在はメンバー変更も1とか2とかidで表示されてしまう)

ハマった点

あとはどこにはまったというより、自分のアプリ設計的なスキルの無さからくるものなんですが、ここもう少しうまく書けないかなぁーと色々と書きなおして結局スパゲチーに書いていたら時間がかなりかかっちゃいました。
rest.jsにチケットの取得・登録のrestをまとめてるんですが、いちいちajaxを毎回書いたりするし、restでデータ登録するとこはまとめてても、結局個別にhtmlのscript要素に似たようなコード沢山書いてしまったり。一回一からリファクタリングしたいと思ってます。javascriptデザインパターン的なものを勉強したい。