ぽらろいどの日記

新しい知見を得たり、得られた知見を記録したり共有したりする場を予定しています。

期日近くになったら警告を表示する(Redmine View Customize Plugin)、を更新する

redmineで期日近くのチケットに対して警告表示を行うためには、色々と調整をする必要がある。だが、プラグインを入れるだけならまだしも、その他のファイルをいじるのは影響を考えるとなるべく避けたいところである。

そこで、参考になる記事として以下があった <:ロミ

blog.enjoyxstudy.com

ただし、この記事の通りにそのまま実行したところ、日付の情報取得などがうまくいかなかった。

それに、以下のように変更したくもあった。

  • 「期日が近いもの」だけでなく、もう少し期日に余裕のあるものでも警告を表示したい
  • どのチケットが警告対象なのか、色変更で分かるようにしたい

そこで、変更を加えて動くようにしたのが以下だ。

$(function() {
  const now = new Date();
  const nowDate = new Date(now.getFullYear(), now.getMonth(), now.getDate());

  const daysLeft = 7;
  const daysLeftCheck = 30;

  var target=0;
  var dueDateArray = [];
  var alermtargetArray = [];

  var alertIsOn=0;

  $('.issue').find('.due_date').each(function(i){
    target=i;
    dueDateArray=$(this).text().split('/');
    var alertDate = new Date(dueDateArray[0], dueDateArray[1] - 1, dueDateArray[2] - daysLeft);
    var alertDateCheck = new Date(dueDateArray[0], dueDateArray[1] - 1, dueDateArray[2] - daysLeftCheck);
    if (nowDate >= alertDateCheck) {
      $('.issue').find('.due_date').eq(i).css('color', '#00eb90');
    }
    if (nowDate >= alertDate) {
      $('.issue').find('.due_date').eq(i).css('color', '#ff8c00');
      alertIsOn=1;
    }
  })

  if (alertIsOn==1) {
    $('#content').prepend('<div class="warning">It is only ' + daysLeft + ' days until the due date.</div>');
  }

})

これを、パスのパターン「 .*」、挿入位置「全ページのヘッダ」にして導入すれば、チケットの一覧画面で、期日までの日数に応じて「期日」の色を変更してくれる。

余分な行などあるかもしれないが、とりあえずこれで動いたので、ひとまずこれでよしとしておこう。