Redmineのプラグイン製作

RedmineプラグインにWiki機能をつける

投稿日:2015年4月4日 更新日:

環境

Wiki機能というよりは、Redmineのリッチなテキストエリアのパーツ群を使えるヘルパーの紹介になる.
Environment:
* Redmine version 3.0.1.devel
* Ruby version 2.1.5-p273 (2014-11-13) [x86_64-darwin14.0]
* Rails version 4.2.1
* Environment development
* Database adapter SQLite

フォーム

テキストエリアを追加する

クラスにwiki-editを追加すると、textareaをちょうど良い幅にしてくれる.

Wikiメニューバーを表示する

テキストエリアのidを指定する.

screenshot

表示

表示部をつくる

wikiクラスをつけて、textilizableヘルパーを使えばOK

プレビュー

やること

フォームにプレビューをつけるのは結構めんどい.
preview_linkというヘルパーが用意されていて、フォームの中からJavaScriptでpreviewというアクションにフォームのhtmlのidを指定すると、jQueryでフォームをシリアライズしてpostしてくれる.
次に、controllerで@textにtextareaの値をいれて、common/previewというパーシャルをrendarすると、ターゲットのdivにプレビューを表示してくれる.
何を言っているかわからないと思うが、application_helper.rbとかのpreview_linkからたどっていけばだいたいわかる.

View

preview_linkを設置する.

そして、form_forでidを指定する.

さらに、routes.rbでpreviewを設定しておく.
これで、jp_people_preview_path @objectで指定のコントローラーの指定のアクションを呼んでくれる.

と思ったら、新規作成の方のpostが404で呼べていなかった.
ので、次の通り修正した.

ちなみに、preview_linkのソースはこれ.

ターゲットはデフォルトでpreviewなので、viewにターゲットのdivを設定しておく.

そして、submitPreviewのソースはこれ.

Controller

で、@textを指定して、common/previewというパーシャルを呼べばOK
submitPreviewでフォームをparamsにシリアライズしてくれるので、普通にparamsから値を取り出すことができる.

screenshot

オートプレビュー

JavaScriptで、テキストエリアの入力を監視すれば、オートプレビューにもできる.
Redmine の wiki 編集画面を auto preview にする
ただし、プレビューの描画にいちいちサーバにアクセスしているので、サーバへの負荷を考慮する必要がある.
上のリンク先では1秒ごとに設定して負荷を軽減する工夫をしている.

-Redmineのプラグイン製作
-,

執筆者:

関連記事

Redmine2.5でプラグイン作成のチュートリアルやってみた4〜テスト

By: Beverly & Pack – CC BY 2.0 目次1 前回まで2 テストの設定3 データベースの準備4 テストの実行5 最初のテスト 前回まで Redmine2.5 …

Redmineでプロジェクトの一覧を表示するプラグインつくった〜projects_table

目次1 機能2 作った理由3 リポジトリ4 同名のプラグイン発見 機能 プロジェクトの一覧を表示する 期日が一番近いバージョンを表示する 最後に更新したチケットを表示する 期日が一番近いチケットを表示 …

Redmineプラグインでマイページにオリジナルのブロックを追加する

目次1 追加方法は簡単2 翻訳3 参考になるプラグイン 追加方法は簡単 app/views/my/blocks以下にパーシャルを作っておいておけばOK www.redmine.org/projects

Redmineプラグインのviewを作るための情報あれこれ

By: amanderson2 – CC BY 2.0 目次1 環境2 サイドバーへの表示3 領域 box4 動作などの領域 contextual5 アイコン6 nodata7 テーブル8 …

Redmineプラグインで既存のモデルを修正する

By: Allen McGregor – CC BY 2.0 プラグイン インターナルを参考にした 目次1 Rubyのモジュール2 既存のモデルを拡張するRedmineプラグイン3 App …