TracでもRedmineでもできるのに、Backlogだと新規課題を作るためのテンプレート機能がなかったので、カッとなって作ってみた。
IE系で使うときは改行文字をとって一行にすれ
query_parameters_to_input_values
javascript:!function(q){
document.location.search.slice(1).split("&").forEach(function(e){v=e.split("=");q[v[0]]=decodeURI(v[1])});
[].forEach.call(document.getElementsByTagName("input"), function(e){e.name&&q[e.name]&&(e.value=q[e.name])});
}({});
「ブラウザのアドレスバーの ?から後ろを取り出し、&で分割したそれぞれについて、=の左をキー、右を値としたハッシュテーブルをこしらえておいて、inputタグのうち、nameがハッシュテーブルのキーと一致していたら、その値を設定する。」
使い方:
- 上記文字列をブックマークレットとして登録しておく。
- リンクするURLにこんなおまけをつけておく:
?key1=value1&key2=value2...
- ブックマークレットを実行すると、form の
input type=text name=key1
に value1 が、input type=text name=key2 に value2
がそれぞれ代入される。
TODO:
- select option を selected にする処理を入れる。 → Backlogのselectが難しすぎた……
Backlogのinputとselectに対応したもの。 ?summary=boo&issueTypeId=C2J&priority=高
みたいに使う。
jquery.chosen ライブラリに合わせた。
アロー演算子を使いたかったんだけど、IE11が対応してなかった……
javascript:!function(q){
document.location.search.slice(1).split("&").forEach(function(e){v=e.split("=");q['issue.'+v[0]]=decodeURI(v[1])});
[].forEach.call(document.getElementsByTagName("input"), function(e){q[e.name]&&(e.value=q[e.name])});
[].forEach.call(document.getElementsByTagName("select"), function(e){
q[e.name]&&[].slice.call(e.options)
.filter( function(o){return q[e.name]==o.text})
.forEach(function(s){jQuery(e).val(s.value).trigger("liszt:updated")})
});
}({});
注意:
- 現状有姿無保証での提供です。エラーハンドリングとかちゃんとやってないし。ま、Submitとかしてないから影響ないと思うけど
なんか他の人もつくってそうな予感。
もうちょっとうまいやり方がある予感。
というかサーバサイドでやってくれよと思う。
Any Comments, Suggestions are welcome!