Redmine の select ボックスにインクリメンタルサーチを追加するプラグインです。
旧 select_to_select2 の後継プラグインです。旧実装では Select2 3.4.5 を使っていましたが、現在の実装では通常の select ボックスに Choices.js を使い、Redmine が option 要素を直接移動・並び替えするリストボックスには専用の検索 input を追加します。
- 通常の Redmine select ボックスを検索可能な UI に置き換えます。
- チケット一覧のフィルタ追加、フィルタ値、グループ化条件に対応します。
- チケット作成・編集画面の担当者、ステータス、トラッカー、優先度、カテゴリ、対象バージョン、カスタムフィールドなどに対応します。
- チケット一覧の「表示オプション > 項目」にある列選択 UI に検索 input を追加します。
multiple+sizeのリストボックスはネイティブ select を維持し、検索 input を追加します。- Redmine の Ajax や動的フィルタ追加に対応するため、未初期化の select だけを追加初期化します。
- 通常 select: Choices.js
11.2.3 - Redmine 管理リスト: ネイティブ select + 専用検索 input
- 動的 DOM 対応:
MutationObserver - Ajax 互換フォールバック:
jQuery.ajaxComplete
このプラグインは、Redmine 本体と Ruby がセキュリティ保守されている環境を優先してサポートします。Redmine 本体または Ruby が EOL の環境では動作する可能性はありますが、サポート対象外または参考検証扱いです。
| Redmine | Redmine 本体の扱い | Ruby の扱い | プラグインの扱い |
|---|---|---|---|
6.1.x |
フルサポート | Ruby 3.3 以上は保守中 |
正式サポート |
6.0.x |
バグ修正・セキュリティ修正 | Ruby 3.3 は保守中 |
正式サポート |
5.1.x |
レガシーセキュリティ修正 | 対応 Ruby は EOL | レガシー互換 |
5.0.x |
EOL | 対応 Ruby は EOL | サポート対象外 |
4.x 以前 |
EOL | 対応 Ruby は EOL | サポート対象外 |
Redmine 公式のサポート状況は Redmine の Download ページ、Ruby の保守状況は Ruby Maintenance Branches を参照してください。
- https://www.redmine.org/projects/redmine/wiki/download
- https://www.ruby-lang.org/en/downloads/branches/
以下のバージョンで、プラグイン読み込み、チケット一覧の列選択、フィルタ追加、チケット作成画面の list カスタムフィールドを確認しています。
| Redmine | Rails | Ruby | 確認状況 |
|---|---|---|---|
6.1.3.stable |
7.2.3.1 |
3.4.9 |
正式サポート対象として確認済み |
6.0.9.stable |
7.2.3 |
3.3.11 |
正式サポート対象として確認済み |
5.1.13.stable |
6.1.7.10 |
3.2.11 |
レガシー互換として確認済み |
4.2.11.stable |
5.2.8.1 |
2.7.8 |
参考検証済み。EOL 環境のためサポート対象外 |
3.4.13.stable |
4.2.11.1 |
2.4.10 |
参考検証済み。EOL 環境のためサポート対象外 |
新規導入では Redmine 6.1.x または 6.0.x を推奨します。Redmine 5.1.x は Redmine 本体のレガシーセキュリティ修正対象ですが、対応 Ruby が EOL のため、できるだけ Redmine 6.x への更新を検討してください。
検証時点では、Docker Hub の redmine:6.0 は 6.0.9、redmine:5.1 は 5.1.12、redmine:4.2 は 4.2.10 でした。5.1.13 と 4.2.11 は Redmine の Git タグから検証用イメージを作成して確認しました。4.2.11 は現在の gem 解決で Redmine 本体側の blankslate が必要だったため、検証用イメージ内で追加しています。
以下のような Redmine の特殊 UI は Choices.js で置換しません。
#available_c#selected_c.query-columns select#filters-table .values select.valueのうち.toggle-multiselectを持つものselect[ondblclick*="moveOptions"]multipleかつsize付きの select
これらは Redmine 本体の JavaScript が option を直接移動・並び替えしたり、multiple / size 属性を切り替えたりするため、select 自体はネイティブのまま維持し、検索 input のみ追加します。
特定の select を対象外にしたい場合は、対象の select に以下を付与します。
<select data-select-to-search="false">-
Redmine の
pluginsディレクトリにこのリポジトリを複製します。git clone https://github.com/sf-cola/select_to_search.git plugins/select_to_search
-
旧
select_to_select2プラグインをインストールしている場合は削除します。 -
Redmine を再起動します。
このプラグインにはデータベースマイグレーションはありません。
select_to_select2 と select_to_search は同時にインストールしないでください。どちらも Redmine の同じ select 要素を対象にするため、同時に読み込むと UI 初期化が重複したり壊れたりする可能性があります。
既存環境では plugins/select_to_select2 を削除し、このリポジトリを plugins/select_to_search としてインストールしてから Redmine を再起動してください。
プラグイン ID は select_to_search です。
初回公開バージョンは 1.0.0 です。

