1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

親チケットのカスタムフィールドの情報を子チケットに引き継ぐ

Posted at

 チケットを作成したときに、ある項目を親チケットと同じように設定する必要があるときにいちいち選択するのがめんどくさいので、自動設定してしまおうという話。
 View Customize Pluginを使って実現できました。ドンピシャで書いているサイトが見つからなかったので残します。

近いことをやっているサイト
https://redmine.tokyo/issues/826

この回答でテキスト形式のフィールドは引き継げました。しかし、今やりたいのはリスト形式。
複数選択不可で、対象のカスタムフィールドが1つの場合は以下で実現できました。

ローカルストレージをほかのスクリプトでも使用している場合は、全部クリアしているので何かしらの気遣いは必要だと思われる。

$(function(){
    $('#issue_tree a[href*="/issues/new"]').on('click', function() {
        //[custom_field_values][1] 数字はカスタムフィールの番号を設定
        var inputList = document.getElementsByName("issue[custom_field_values][1]");
        var checked;
        for(var i = 0; i < inputList.length; i++){
            //選択されている項目のテキストを取得
            if(inputList[i].checked){
                checked = inputList[i];
            }
        }

     localStorage.setItem('key1', checked.value);// ローカルストレージへの書き込み
    });
 });
 
 $(function(){
    var hikitugi = localStorage.getItem('key1');
    if (hikitugi){
       // 初期表示時に前回保存された値を読み込んでセット
       var inputList = document.getElementsByName("issue[custom_field_values][1]");
       var checked;
       for(var i = 0; i < inputList.length; i++){
           //テキストが一致する項目を選択状態にする
           if(inputList[i].value === hikitugi){
               inputList[i].checked = true;
           }
       }

       // ローカルストレージのクリア
       localStorage.clear();
    }else{
    //何もしない
    }
 });
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?