Redmineカスタマイズその2 チケットメール送信選択

Redmineカスタマイズその2です。*1
今回はチケット編集画面に
「メール送信する」
というチェックボックスを追加し、
チケット更新時にメール送信する・しないを選択出来るようにしてみます。*2

$RAILS_ROOT/app/views/issues/_edit.rhtml

$RAILS_ROOT/app/views/issues/new.rhtml

+    <div class="box">
+        <label><%= check_box_tag 'send_mail', 1, @send_mail %> メール送信を行う</label>
+    </div>

まずはビュー2つから。
このソースコードを「作成」ボタンの直前くらいに追加します。これだけでOK。
ちなみにnew.htmlを改修するときの注意点。
何故かlabelタグを入れるとレイアウトがずれてしまうため、
labelタグは外しておきましょう
理由は全くわからないのですが…

$RAILS_ROOT/app/controllers/issues/issue_controller.rb

+    if params[:send_mail]
       Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added')
+    end

こちらはコントローラです。
Mailerを呼び出している部分に上記のif文を追加しましょう。
計3箇所存在しています。


上記3つのファイルを改修したら終了。
あとはチェックボックスが正常に機能しているかどうかを
テストして完了です。
こんな感じ。


次回は未定…
メール送信に関しては、送信メンバーを選択できるように
というのもやりたいのですが、こちらは時間がかかりそうな感じです。
あと、チケット一覧のフィルタで気になる所があるので
そちらのパッチは近日中に公開できるかもしれません。
では。

*1:バージョンは0.7.3を対象にしています

*2:もちろん、「管理」「設定」「メール通知」でチケットトラッキングに対してのメール通知がONになっていることが前提です。