読者です 読者をやめる 読者になる 読者になる

Redmineのアジャイル開発用プラグインBacklogsの導入(2)

こんにちは。 VASILYのエンジニアの福本です。 前回は、Redmineのbacklogsプラグインの概要とインストール方法を紹介しました。 今回はインストール後の改善点について、メール設定とストーリ入力画面の改善についてご紹介します。

メール設定

SMTPにGoogleAppsを使用する

VASILYではGoogleAppsを利用しているので、Redmineからのメール送信もGmailのSMTPを利用する事にします。 メール関連の設定は下記のファイルを参考に記述するのですが、親切にもGmail用の設定も雛形になっています。

redmine/config/configuration.yml.example
GmailにはTLSを使用するので、いくつか作業してねと書いてありRedmineBlogへのリンクが貼ってあります。 こちらの手順通りにやってみたいと思います。

1. TLS用プラグインのインストール

Redmineのインストールディレクトリに行き、下記のコマンドを打つとインストールしてくれます。

ruby script/plugin install git://github.com/collectiveidea/action_mailer_optional_tls.git

2.設定ファイルの編集

先ほどの雛形ファイルを参考に、redmine/config/configuration.yml を作成します。 下記のようになります。

production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      tls: true
      address: "smtp.gmail.com"
      port: 587 domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
      authentication: :plain
      user_name: "your_email@gmail.com"
      password: "your_password"

3.テストメール送信

管理者権限でログインし、管理>設定>メール通知の一番下に「テストメールを送信」というリンクがあります。 クリックすると自分のアカウントの登録メールアドレスにテストメールが送信されます。 何か問題があれば、エラーメッセージが表示されるようになっています。 これでGmailのSMTPを利用してメール送信をする事ができると思います。 テストメール送信

非同期設定

メール送信はできるようになったのですが、バックログ管理画面やタスクボード上でのAjax操作が異様に遅くなりました。 先ほどの設定ではメール送信が同期設定になってしまっていたからです。 これだとメールが実際に送信されるまで処理が進まず、完了までに数秒待たされる事もあります。 非同期にできないかと調べていたら、やはりRedmine.JPにありました。 小技(0.9): 非同期メール送信を設定してチケット登録を高速化 (あとから雛形に書いてあるのを発見しました^^;;;ちゃんと見なきゃダメですね) 先ほどの設定のdelivery_methodのところをsmtpからasync_smtpに変更するだけです。 これで以前のパフォーマンスを取り戻しました!

production:
  email_delivery:
    delivery_method: :async_smtp # ここを変更
    smtp_settings:
      tls: true
      address: "smtp.gmail.com"
      port: 587
      domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
      authentication: :plain
      user_name: "your_email@gmail.com"
      password: "your_password"

メール送信制御

ただ、バックログ画面やタスクボードの操作でいちいちメールが送信されるのもうざいですよね。 少し調べた限り、設定での制御はできないようです。 こちらはコードを見てみて、変更できそうであれば改修してしまおうと思います。 うまくいったら、また紹介させていただきます。

バックログ管理画面のプチ日本語対応

バックログ管理画面のストーリー入力は日本語にやさしくありません。 漢字変換を確定させるEnterで入力が確定してしまいます。 バックログ管理画面 ひとまず下記のJSを修正する事で、入力確定をEnterでは無くCtrl+Enterにすることで対処しました。

redmine/vendor/plugins/redmine_backlogs/assets/javascripts/editable_inplace.js

$ diff editable_inplace.js editable_inplace.js.org 23,26c23,28 < if(event.ctrlKey === true && event.which === 13){ // Ctrl + Enter < that.saveEdits(); &lt; } else if(event.which === 27){ // ESC < that.cancelEdit(); --- > switch(event.which){ > case 13 : that.saveEdits(); // Enter > break; > case 27 : that.cancelEdit(); // ESC > break; > default : return true;
ストーリーを入力する部分について全般的にちょっと使いかってが悪いので、時間を取って調整をしようと思っています。 またアウトプットが出てきましたらご報告します。 VASILYではエンジニアを募集しています。 一緒に変化を楽しみませんか? 詳しくはこちらをご覧ください!