Redmineのデスクトップクライアント的なものをnode-webkitで作った②
前回の記事はこちら
Redmineのデスクトップクライアント的なものをnode-webkitで作った - suzan2号の戯れ
なんか凄い時間が立ってしまいましたが、チケットを表示・修正する機能をつけました。
suzan2go/RedNodeKit · GitHub
My Ticketsのタブから、現在自分に割り当てられているチケットの表示・更新ができます。
スマホアプリのように下にフックすることで更新もできます。
これにはhook.jsを使わせてもらいました。
本当にすごーく簡単にhookでの更新ができるようになりました。
jordansinger/Hook.js · GitHub
チケット一覧の画面でチケットをクリックすると、詳細な情報を表示できます。
更新履歴も出してますが、ステータスやメンバーの変更はidで表示されちゃいます。今後なんとかします。
以下、編集画面です。メンバーの変更とか、期日の変更とかステータスの変更など簡単な変更をここにすることを想定してます。注記に変更時のコメントを書く感じです。
更新したところ
前回の記事のあと今まで自分しか見てなかったんじゃね??というこのブログに200人以上が来てくれたりして、よっしゃー頑張るぞ!!となってたんだけど、仕事のピークも重なってしまい1ヶ月弱立ってしまいました。この3連休と先週末頑張ってやっと使って貰えそうなもんができました。
- できるようになったこと
- 自分が担当者のチケットをtwitterアプリ風(今は更新するとこだけだけど…)に表示する。
- チケットを編集する
- まだ出来ないこと
- 自分が担当者のチケットが作成されたら通知する(でもコレは結構しんどい)。
- 更新履歴の内容をちゃんと表示する(現在はメンバー変更も1とか2とかidで表示されてしまう)
ハマった点
- ajaxのPUTメソッドが、成功してるはずなのにerror処理に入ってしまう。
- バグではないみたいですが以下と同じ状況みたい?結局HTTPのステータスコードで処理を分けるようにしました。http://bugs.jquery.com/ticket/13350
あとはどこにはまったというより、自分のアプリ設計的なスキルの無さからくるものなんですが、ここもう少しうまく書けないかなぁーと色々と書きなおして結局スパゲチーに書いていたら時間がかなりかかっちゃいました。
rest.jsにチケットの取得・登録のrestをまとめてるんですが、いちいちajaxを毎回書いたりするし、restでデータ登録するとこはまとめてても、結局個別にhtmlのscript要素に似たようなコード沢山書いてしまったり。一回一からリファクタリングしたいと思ってます。javascriptのデザインパターン的なものを勉強したい。