利便性の高い Redmine プラグイン

## Redmine プラグイン
Redmine 4.x で動作する利便性の高いプラグインをインストール手順と共に目的別にリストアップした。
Docker 公式イメージを利用した Redmine 4.0.4 で動作を確認した。
Docker 公式イメージを利用した Redmine 4 のセットアップは「[最新の Redmine 4 を Docker 公式イメージで運用する - Qiita](https://qiita.com/bezeklik/items/b9d75ee74e0ae4c6d42c)」を参照。

### プラグイン一覧
#### 表示改善
|プラグイン名|内容|
|---|---|
|Redmine Theme Changer Plugin|ユーザー毎のテーマ切り替え|
|Redmine persist wiki format plugin|投稿単位での Textile/Markdown 切り替え|
|Redmine Issue History|チケットのコメント以外を非表示|
|Redmine Editor Preview Tab Extension|タブでプレビュー|
|Redmine Absolute Dates plugin|更新日時を絶対表示|
|Redmine Preview PDF|PDF をプレビュー|
|Redmine Already Read plugin|チケットの既読を記録|
|View Customize plugin||
|Redmine Favorite Projects plugin|プロジェクトをお気に入り設定|

#### 入力改善
|プラグイン名|内容|
|---|---|
|Redmine Issue Templates Plugin||
|Redmine Tagging Plugin|タグの追加|
|Redmine Checklists plugin (Light version)|チケットにチェックリストを追加|
|Redmine Agile plugin (Light version)||
|Easy Gantt plugin||

#### 通知改善
|プラグイン名|内容|
|---|---|
|Redmine Slack|Slack 通知|
|Redmine Banner Plugin|画面上部に通知欄を常時表示|

## プラグイン更新処理
```bash
docker exec redmine bundle install --jobs=4 --without development test && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```

## 表示改善
### Redmine Theme Changer Plugin
```bash
git clone --depth 1 \
 https://github.com/haru/redmine_theme_changer \
 ./plugins/redmine_theme_changer && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://github.com/haru/redmine_theme_changer
アカウント単位でテーマを変更できるようになる。

### Redmine persist wiki format plugin
```bash
git clone --depth 1 \
 https://github.com/pinzolo/redmine_persist_wfmt \
 ./plugins/redmine_persist_wfmt && \
docker exec redmine bundle install --jobs=4 --without development test && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine bundle exec rake pwfmt:persist_all FORMAT=textile RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://github.com/pinzolo/redmine_persist_wfmt
チケットや Wiki などのテキスト書式を個別に Textile か Markdown を選択、保存できるようになる。

### Redmine Issue History
```bash
git clone --depth 1 \
 --branch translationJA \
 https://github.com/GEROMAX/redmine_issue_history \
 ./plugins/redmine_issue_history && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://github.com/stpl/redmine_issue_history
チケットのコメントをタブ分けしてコメント以外を非表示にできる。

テーマ側で対応している場合があるのでうまく動作しないことがある。

### Redmine Editor Preview Tab Extension
```bash
git clone --depth 1 \
 https://github.com/tleish/redmine_editor_preview_tab \
 ./plugins/redmine_editor_preview_tab && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://github.com/tleish/redmine_editor_preview_tab
<img src="https://raw.githubusercontent.com/tleish/redmine_editor_preview_tab/master/docs/screenshot_preview.png">
チケットやコメントの入力欄にプレビュータブを追加する。

テーマ側で対応している場合があるのでうまく動作しないことがある。

### Redmine Absolute Dates plugin
```bash
git clone --depth 1 \
 https://github.com/hanamiche/redmine_absolute_dates \
 ./plugins/redmine_absolute_datetime && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://github.com/suer/redmine_absolute_dates
デフォルトでは相対的なコメントの登録日時を絶対的な日時表示に変更する。
オリジナルは日付しか表示されないので [@hanamiche](https://github.com/hanamiche/redmine_absolute_dates) のフォークを利用する。

### Redmine Preview PDF
```bash
git clone --depth 1 \
 https://github.com/nanego/redmine_preview_pdf \
 ./plugins/redmine_preview_pdf && \
docker exec redmine apt-get update && \
docker exec redmine apt-get install -y build-essential libmagic-dev ghostscript && \
docker exec redmine bundle install --jobs=4 --without development test && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://github.com/HugoHasenbein/redmine_preview_pdf
オリジナルは Rails 5 に対応していないので [@nanego](https://github.com/nanego/redmine_preview_pdf) のフォークを利用する。

`build-essential` `libmagic-dev` `ghostscript` の各パッケージのインストールが必要。

### Redmine Already Read plugin
```bash
git clone --depth 1 \
 https://github.com/tkusukawa/redmine_already_read \
 ./plugins/redmine_already_read && \
docker exec redmine bundle install --jobs=4 --without development test && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://github.com/ameya86/redmine_already_read
チケットの既読／未読を管理し、チケット一覧に「既読」「読んだ日時」列を追加。
オリジナルは Rails 5 に対応していないので [@tkusukawa](https://github.com/tkusukawa/redmine_already_read) のフォークを利用する。

### ~~Redmine Diff Popup plugin~~ (Redmine 4.x 動作未確認)
```bash
git clone --depth 1 \
 https://github.com/GEROMAX/redmine_diff_popup \
 ./plugins/redmine_diff_popup
```
http://www.redmine.org/plugins/redmine_diff_popup
<img src="http://www.redmine.org/attachments/download/19215/demo.png">
Redmine 4.0.4 でインストール可能なもののチケット表示で画面によってはエラーに。

### ~~redmine_thumbnail_pdf~~ (Redmine 4.x 動作未確認)
```bash
git clone --depth 1 \
 https://github.com/HugoHasenbein/redmine_thumbnail_pdf \
 ./plugins/redmine_thumbnail_pdf && \
docker exec redmine apt-get update && \
docker exec redmine apt-get install -y build-essential libmagic-dev ghostscript
```
https://github.com/HugoHasenbein/redmine_thumbnail_pdf
Rails 5 で `alias_method_chain` が廃止されたので対応が必要。

```
vi redmine_thumbnail_pdf/lib/redmine_thumbnail_pdf/patches/attachments_controller_patch.rb
vi redmine_thumbnail_pdf/lib/redmine_thumbnail_pdf/patches/admin_controller_patch.rb
vi redmine_thumbnail_pdf/lib/redmine_thumbnail_pdf/patches/attachment_patch.rb
vi redmine_thumbnail_pdf/lib/redmine_thumbnail_pdf/patches/thumbnail_patch.rb
```

### View Customize plugin
```bash
git clone --depth 1 \
 https://github.com/onozaty/redmine-view-customize \
 ./plugins/view_customize && \
docker exec redmine bundle install --jobs=4 --without development test && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://github.com/onozaty/redmine-view-customize
<img src="https://raw.githubusercontent.com/onozaty/redmine-view-customize/master/screenshots/new.en.png">

### Redmine Favorite Projects plugin
```bash
token=0c7a1fefdd47f3a96fb57a4f94450dbdf98dd && \
curl --location --tlsv1 \
 --output ~/redmine_favorite_projects-2_1_0-light.zip \
 https://www.redmineup.com/license_manager/65036?token=${token} && \
unzip ~/redmine_favorite_projects-2_1_0-light.zip \
 -d ./plugins/ && \
docker exec redmine bundle install --jobs=4 --without development test && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://www.redmineup.com/pages/plugins/favorite-projects
`token` は各自で [RedmineUP](https://www.redmineup.com/pages/plugins) から取得して差し替えること。

## 入力改善
### Redmine Issue Templates Plugin
```bash
git clone --depth 1 \
 https://github.com/akiko-pusu/redmine_issue_templates \
 ./plugins/redmine_issue_templates && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://github.com/akiko-pusu/redmine_issue_templates

### ~~Redmine Tagging Plugin~~ (Redmine 4.x 動作未確認)
```bash
git clone --depth 1 \
 https://github.com/windviki/redmine_tagging \
 ./plugins/redmine_tagging && \
docker exec redmine bundle exec rake acts_as_taggable_on_engine:install:migrations RAILS_ENV=production && \
docker exec redmine bundle exec rake db:migrate RAILS_ENV=production && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://github.com/Restream/redmine_tagging
オリジナルは Rails 5 に対応していないので [@windviki](https://github.com/windviki/redmine_tagging) のフォークを利用する。

`Bundler::GemNotFound: Could not find gem 'activerecord-compatible_legacy_migration' in any of the gem sources listed in your Gemfile.` のエラーが出力されてインストールに失敗する。

### ~~Redmine Tags plugin~~ (Redmine 4.x 動作未確認)
```bash
token=0c7a1fefdd47f3a96fb57a4f94450dbdf98dd && \
curl --location --tlsv1 \
 --output ~/redmineup_tags-2_0_7-light.zip \
 https://www.redmineup.com/license_manager/68667?token=${token} && \
unzip ~/redmineup_tags-2_0_7-light.zip \
 -d ./plugins/ && \
docker exec redmine bundle install --jobs=4 --without development test && \
docker exec redmine bundle exec rake db:migrate RAILS_ENV=production && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://www.redmineup.com/pages/plugins/tags
`token` は各自で [RedmineUP](https://www.redmineup.com/pages/plugins) から取得して差し替えること。
`NoMethodError: undefined method `` ` `` tag_types' for Issue` のエラーが出力されてインストールに失敗する。

### Redmine Checklists plugin (Light version)
```bash
token=0c7a1fefdd47f3a96fb57a4f94450dbdf98dd && \
curl --location --tlsv1 \
 --output ~/redmine_checklists-3_1_16-light.zip \
 https://www.redmineup.com/license_manager/66499?token=${token} && \
unzip ~/redmine_checklists-3_1_16-light.zip \
 -d ./plugins/ && \
docker exec redmine bundle install --jobs=4 --without development test && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://www.redmineup.com/pages/plugins/checklists
`token` は各自で [RedmineUP](https://www.redmineup.com/pages/plugins) から取得して差し替えること。

### Redmine Agile plugin (Light version)
```bash
token=0c7a1fefdd47f3a96fb57a4f94450dbdf98dd && \
curl --location --tlsv1 \
 --output ~/redmine_agile-1_5_0-light.zip \
 https://www.redmineup.com/license_manager/75051?token=${token} && \
unzip ~/redmine_agile-1_5_0-light.zip -d ./plugins/ && \
docker exec redmine bundle install --jobs=4 --without development test && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://www.redmineup.com/pages/plugins/agile
`token` は各自で [RedmineUP](https://www.redmineup.com/pages/plugins) から取得して差し替えること。

### Easy Gantt plugin
```bash
curl --location --tlsv1 \
 --output ~/EasyGanttFree.zip \
 https://packages.easyredmine.com/packages/EasyGanttFree.zip && \
unzip ~/EasyGanttFree.zip -d ~/ && \
unzip ~/EasyGanttFree-4.x.zip -d ./plugins/ && \
docker exec redmine bundle install --jobs=4 --without development test && \
docker exec redmine bundle exec rake db:migrate RAILS_ENV=production && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://www.easyredmine.com/redmine-gantt-plugin

## 通知改善
### Redmine Slack
```bash
git clone --depth 1 \
 https://github.com/altnight/redmine-slack \
 ./plugins/redmine_slack && \
docker exec redmine bundle install --jobs=4 --without development test && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://github.com/sciyoshi/redmine-slack
オリジナルは2019/02/01以降にマージが行われていないので [@altnight](https://github.com/altnight/redmine-slack) のフォークを利用する。

ディレクトリ名を `redmine-slack` から `redmine_slack` に変更しないと動作しないので注意。

### Redmine Banner Plugin
```bash
git clone --depth 1 \
 https://github.com/akiko-pusu/redmine_banner \
 ./plugins/redmine_banner && \
docker exec redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production && \
docker exec redmine passenger-config restart-app /usr/src/redmine
```
https://github.com/akiko-pusu/redmine_banner

## 参考 URL
* [僕がredmineに入れてる便利なプラグインとデザインの格好良いテーマ - Qiita](https://qiita.com/y_hokkey/items/7c02a3af319b353136d5#redmine-default-custom-query)
* [Redmineを受け入れて貰うためのプラグイン紹介 - Qiita](https://qiita.com/GEROMAX/items/85ee816f9fe6c5eb331f)
* [Redmineで導入をオススメするプラグイン13選 | CodeLab](https://codelab.website/redmine-plugin/)