[Redmine] チケット編集中にエンターキーでの誤送信を防ぐ

  • このエントリーをはてなブックマークに追加
  • LINEで送る

Redmineでチケットの作成や編集を行っている最中、題名などテキストボックスで間違えてエンターキーを押すと送信されてしまうことがありますよね。

もうストレスMAXでハゲ散らかしそうな勢いです。プロジェクトが終わるのが早いか、坊主になるのが早いかの戦いは避けらそうにないため、毛髪を守るために今回はテキストボックスでエンターキーが押されても送信されないようカスタマイズを行います。

ここではView Customizeプラグインを利用して実装します。インストール方法などは以下の記事をご覧ください。


- Sponsored Link -

設定する

パスのパターン

チケットを編集するタイミングは大きく2種類あり、それぞれのパスは次のようになります。

新規作成
/projects/.*/issues/new
編集
/issues/[0-9]{1,}

というわけで最終的に以下のようなパターンを入力します。ちょっと分かりづらいかなw

  • /(projects/.*/issues/new|issues/)

プロジェクトのパターン、挿入位置、種別

「プロジェクトのパターン」
要件に合う物を設定してください。
「挿入位置」
全ページのヘッダ
「種別」
JavaScript

コード

コード欄には以下のようなJavaScriptを入力します。もしカスタムフィールドなどを追加している場合など、テキストボックスが他にもある場合はidlist配列にidを追加します。

$(document).ready(function(){
  // 対象のテキストボックス一覧
  const idlist = [
    "#issue_subject",          // 題名
    "#issue_parent_issue_id",  // 親チケット
    "#issue_estimated_hours"   // 予定工数
  ];

  // エンターキーを押してもSubmitしない
  $(idlist.join(",")).keypress(function(e){
    if( e.which === 13 ){
      return(false);
    }
  });
});

keypressでキーが押された場合の処理を定義、e.whichで押されたキーを参照しています(13番はエンターキー)。falseをreturnで返すとSubmitイベントがキャンセルされます。

このブログを応援する

お寄せいただいたお気持ちは全額サーバ代や次の記事を執筆するための原資として活用させていただいております。この記事が参考になった場合などぜひご検討ください。

PayPal(ペイパル)
PayPalで300円支払う
※金額は任意で変更できます。
※100円でも泣いて喜びますw
※住所の入力欄が現れた場合は「no needed」を選択ください
これまでのご協力者さま
- Sponsored Link -

ご質問やリクエストなどお気軽に。メールアドレスの入力は任意です。書き込みが反映されるまで時間がかかります。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください