Redmine: チケット作成時に処理を行う (View customize plugin)

「チケット作成時に、カスタムフィールドの値を使って他の項目の値を変えたい」といった相談をいただいたので、View customizeで書いてみました。

例として、チケット作成時に、キー・バリュー形式のカスタムフィールドから選択されている内容を取り出して、それをタイトルの先頭に挿入してみます。

設定内容

Path pattern

チケットを作成する画面ということで、新規作成とコピーを対象にします。

/issues/(new|[0-9]+/copy)

Code

Type:JavaScriptとして下記を設定します。

$(function() {
  $('#issue-form').submit(function() {
    // 題名の先頭にカスタムフィールドの値を埋め込む
    var subject = $('#issue_custom_field_values_1 option:selected').text() + ':' + $('#issue_subject').val();
    $('#issue_subject').val(subject);
  });
});

clickイベントじゃなくてsubmitにしている理由としては、click以外でも登録することができる(たとえば題名欄でリターンなど)ためです。

(過去に書いたやつで、click限定で書いてしまっていたやつがあったような気もするので、そっちも直しておかないと、、)