Redmineのステータスをクローズにすると同時に進捗率を100にするカスタマイズ
個人メモとして利用しているRedmine。ステータスに応じて進捗率を設定してしまうと、トラッカーが追えなくなるため、以下のカスタマイズを行いました。
スクリプトの内容
-
Redmineに管理者権限でログインします。
- 管理>表示のカスタマイズに進みます。
- 新しい表示のカスタマイズを選択し、
- パスのパターン:空白
- 挿入位置:全ページのヘッダ
- 種別:JavaScript
- コード
$(document).on('change', '#issue_status_id', function () {
const closedStatuses = [5, 6]; // 閉じられたステータスIDを指定(例: 5: 完了, 6: 却下)
const selectedStatus = parseInt($(this).val(), 10);
// 元の進捗率を保存するための変数
let originalDoneRatio = $('#issue_done_ratio').data('original-done-ratio');
if (!originalDoneRatio) {
// 初回実行時に元の進捗率を保存
originalDoneRatio = $('#issue_done_ratio').val();
$('#issue_done_ratio').data('original-done-ratio', originalDoneRatio);
}
if (closedStatuses.includes(selectedStatus)) {
$('#issue_done_ratio').val('100'); // 進捗率を100%に設定
} else {
// 元の進捗率に戻す
$('#issue_done_ratio').val(originalDoneRatio);
}
});
動作の解説
- チケットのステータスが変更されると、指定された閉じられたステータスIDの場合は、自動で進捗率が100%に変更されます。
- その他のステータスに変更された場合は、初回に保存した元の進捗率に戻されます。
これで、進捗率を維持しつつステータスの変更が可能になります。