Formの入力内容をCookieに自動保存し、あとで復元できるようにするTracPluginを作りました。
またまたTracのPluginです。
たとえば、新しくチケットを書いているときに、ブラウザがクラッシュしたとか、操作を間違えて頑張って入力したチケットの内容が時空の彼方へと消え去ったりとか、悔しい思いをされたかたは多いのではないでしょうか?
『おっ・・・・ お師・・・・・・ お師さ〜〜〜〜ん!! な・・・なぜ こんなに苦しいのなら悲しいのなら・・・・・・・・・・・ Tracなどいらぬ!! おれはその時からTracをすてた! いや帝王の星がめざめたのだ!! 帝王にTracなどいらぬ!』
などという悲劇を引き起こし、Excelのバグ票で聖帝十字陵を築いたり、七つの傷を持つ北斗の男に倒されたりしないように、こんなPluginを作りました。
shibuya-tracのrepositoryにコミットしてます。
これはなに?
FormAutoSavePluginといいます。
rikrikrik.com - jQuery autosave plug-inというjQueryプラグインを利用して、チケットの登録画面などのフォームの入力内容を一定間隔でCookieに保存し、あとで復元できるようにするものです。
Trac 0.11.5.ja1とMacOSX Safari4.0.4とFirefox3.5.5で動作確認しています。
落ち着け! "Cookieから復元"を押すんだ!
インスコ
shibuya-tracのリポジトリからsvn coでチェックアウトしてください。
svn checkout http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/FormAutoSavePlugin/trunk/0.11/ FormAutoSavePlugin
チェックアウトした後、FormAutoSavePluginディレクトリに移動し、以下のコマンドでeggを作成します。
cd FormAutoSavePlugin/ ./setup.py bdist_egg
distディレクトリにFormAutoSavePlugin-1.0-py2.5.eggというファイルが作成されるので、このファイルをtracのプロジェクト環境があるディレクトリのpluginsディレクトリにコピーしてください。
使い方
プラグインが有効になると、Tracのチケット登録画面の下の方に、こんなリンクが表示されるようになります。
この状態では、一定時間(デフォルトでは5秒おき)にCookieに保存されます。ブラウザを閉じたりした後に、同じURLに戻ってきた場合は、この"Cookieから復元"リンクをクリックすることで、保存された状態にFormを復元できます。
設定
trac.iniの"components"セクションの末尾に、以下のように記入してプラグインを有効にしてください。(IniAdminプラグインの画面から有効にしてもおけです。)
[components] ...省略 formautosave.* = enabled
動作をカスタマイズするには、trac.iniに"formautosave"セクションを追加して、設定を行ってください。
[formautosave] interval = 5000
設計項目の内容は以下の通りです。
項目 | 説明 | デフォルト |
---|---|---|
interval | 自動保存を実行する間隔をミリ秒で指定します。デフォルトは5秒です。 | 50000 |
設定は、IniAdminプラグインの画面からも行うことができます。