Subscribed unsubscribe Subscribe Subscribe

hiveminder-local-timetrackをlocalStorage対応しましたが…

始まりはtypesterさんのこの発言から。http://twitter.com/typester/status/12992632555
これ結構簡単にできるなぁと思ったので、実装してtypesterさんにpull requestしました。localStorageに経過時間を保存することで、ページ遷移やページリロードした際にも経過時間がリセットされなくなり、また、終了したタスクも処理に要した時間が見れるのでかなりいい感じになってます。
しかし、翌日、問題があることがわかりました。Fluid.appはSSBのインスタンスが消滅してしまう(要するにHiveminder.appを再起動したりする)と、localstorageが消えて無くなってしまう仕様になっているのです。よって、アプリを再起動すると経過時間がリセットされてしまいます。

どうしようか、下記のような解決策を考えてみましたが、今のところどれもいまいちです。

firefox + greasemonkey上でhiveminder-local-timetrack.user.jsを動かす。

firefoxであればlocalstorageが保存されるのでその点はいいのですが、Growl通知ができなくなってしまいます。
(jGrowlでの通知になってしまうので通知に気がつきません。)

localStorageに保存せずにweb上に保存して呼び出す。

Hiveminderのタスクにはコメント欄があるので、ここに経過時間を保存しておき、ロード時にコメント欄をparseする方法を考えました。localStorageを使用しないので、ブラウザ間でも経過時間を共有出来る利点があります。しかし、local-timetrackはオフライン時にも動作できるようにするのが元々のコンセプトのためweb上に保存するのはコンセプトに反することになります。

Fluidiumを使用する

FluidとCruzを合体させて、オープンソース化する動きがあります。今後FluidとCruzはFluidiumベースになる予定です。FludiumのソースはGithubで公開されています。http://github.com/itod/fluidium
コミットログを読んでいくとhttp://github.com/itod/fluidium/commit/0578f977c8fb523649d8d2cf1cc65f233c947e4a でlocal storage optionが追加されているため、将来的にlocalStorageをサポートするのは間違いなさそうです。しかし、実際にFluidiumベースのFluidを使用してみましたが、localStorageはまだサポートされていないのと他にも動作が不安定なので現時点ではまだ実用には堪えれない感じです.

万事解決の道のりは遠いのですが、少なくともページリロードで経過時間情報がリセットされてしまっている旧バージョンよりは便利になってますのでよかったら使ってください。
http://github.com/typester/hiveminder-local-timetrack/tree/topic/localstorage