LoginSignup
1
0

More than 3 years have passed since last update.

Redmineでチケットをコピーした時は開始日と期日をそれぞれ+1日加算したい

Last updated at Posted at 2021-01-17

同じ開始日と期日でチケット作ることほぼ無いからね

RedmineをTODOっぽく使ってるマンです。
んで、使ってるうちにこんなことを思いました。

  1. 今日のお掃除チケット終了!じゃあ明日用にチケットコピーしようジャマイカ。
  2. あれ?コピーしたはずのチケットが見当たらない…。
  3. あ、開始日と期日を 1日ずらすの忘れてた
  4. 面倒くさいなあ…。

ということで記事タイトルのようなことをやりました。

ビューカスタマイズプラグイン使うよ

ビューカスタマイズプラグインのインストールまでは下記でやってるので、この記事ではハショリます。
CentOS8にインストールしたRedmineにビューカスタマイズプラグイン導入

設定はこんな感じ

パスのパターン で絞り込んでおくのが大事。
『このJSって別のページに悪影響あるかな?』を考えなくてよくなるです。
image.png

コード
$(function(){


    var start_val_ = $('#issue_start_date').val();
    var due_val_ = $('#issue_due_date').val();


    //コピー元の値を確認できた方がいいから。
    $('label[for="issue_start_date"]').text('開始日(元:' + start_val_.replace(/-/g, '/') + '');
    $('label[for="issue_due_date"]').text('期日(元:' + due_val_.replace(/-/g, '/') + '');


    var y_;
    var m_;
    var d_;


    //チケットコピーは日次のTODOが多いから開始日と期日を+1日加算。

    //開始日未設定のチケットをコピーすると、
    //開始日の値は現在日付が自動でセットされるので、
    //開始日の値が無い場合は考えないことにします。


    //開始日
    var start_date_ = new Date(start_val_);
    start_date_.setDate(start_date_.getDate() + 1);

    y_ = start_date_.getFullYear();
    m_ = ("00" + (start_date_.getMonth()+1)).slice(-2);
    d_ = ("00" + start_date_.getDate()).slice(-2);
    $('#issue_start_date').val(y_ + "-" + m_ + "-" + d_);


    //期日未設定のチケットをコピーした時に例外にならないように。
    if(due_val_ == '') return;


    //期日
    var due_date_ = new Date(due_val_);
    due_date_.setDate(due_date_.getDate() + 1);

    y_ = due_date_.getFullYear();
    m_ = ("00" + (due_date_.getMonth()+1)).slice(-2);
    d_ = ("00" + due_date_.getDate()).slice(-2);
    $('#issue_due_date').val(y_ + "-" + m_ + "-" + d_);


})

有効にするとこんな感じ

年またぎと月またぎの時にちゃんと動作するか確認しました。
image.png

蛇足

チケットを『日次』『週次』『月次』『年次』『不定期』に分類して、それぞれに対してチケットコピー時の加算日数を切り替えれば、もうちょっと便利になるかもです。

ビューカスタマイズプラグインはこういうプチ改良が手軽にできて便利です。

バージョン

CentOS Linux release 8.3.2011
Redmine 4.0.6.stable
Chrome バージョン: 87.0.4280.141(Official Build) (64 ビット)

1
0
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
0