Redmineのプラグイン製作

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

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

環境

RedmineのViewを作るためにソースを読んだメモ
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

サイドバーへの表示

右サイドの濃いグレーの部分
screenshot

最初にh3要素を入れておけば、あとはいい感じに表示してくれる.
screenshot

screenshot

便利なヘルパー

現在のページ以外ではリンクにする.

領域 box

こういう薄いグレーの領域
screenshot

動作などの領域 contextual

右上のアクションなどを出す部分
screenshot

例えば、project_helperなどは、User権限によって、表示するアクションを変えている.

アイコン

実際のアイコンは上の画面を参照.
探し方としてはpublic/imagesで実際のアイコンを探して、application.cssでその画像を使っているcssを検索するしかないみたい.

アイコンを使用する

nodata

データがないときの表示はこのままコピペでオK.
screenshot

テーブル

list

tableタグにlistクラスをつけることで、Redmineでよくみるテーブルになる.
screenshot

listクラスだけだと、奇数・偶数行ごとに色分けされていなくて、trに.oddと.evenクラスを順番につける必要がある.
この間、Dotinstallで勉強したCSS3のnth-childでcssをつけた.

なお、Redmineプラグイン開発でのSCSSの利用については、下を参照.
Redmineプラグイン開発にCoffeeScriptとSASSを使う〜guard-sprockets&guard-sass

sort

テーブルのタイトルをクリックすると並べ替えられるやつ
詳細は、
app/helper/sort_helper.rbのコメントに書いてある.
まず、controllerに最低限書く

次に、viewでthにsort_header_tagを設定する.
sort_header_tagは <th> タグも出力してくれるので、注意.

pagination

表示数が多くなったら’次へ’とか、’1 2 3’とか出してくれるやつ
詳細は、lib/redmine/pagination.rbのソースを読むしかないけど、
users_controller.rbとか実際のRedmineでの使い方もかなり参考になる.
まず、controllerでアイテムの総数を調べてcountして、1ページあたりのアイテム数を決めて、Paginator.newでオブジェクトを作る.
上のsortと一緒に使う例.
per_page_optionはRedmineのapplication_controllerで定義している.

次に、Viewでpagination_links_fullヘルパーを追加する.

で、オK
screenshot

右クリックメニュー

テーブル上の右クリックメニューについてはまた調べる.

フォーム

fieldset legend

フォームの要素をさらに区分するときに使う
collapseを使うと動的に表示非表示とかもできる.

screenshot

tabular

ラベルとフォームの関係をいい感じにしてくれるcss class

ラベルとフォームを中心で揃えてくれる感じになる.
screenshot

labelled_form_for

ラベル付きで出力してくれるFormBuilder.
新規作成(new) アクション
Redmineプラグイン開発できるといいなぁ 採番プラグインを目指して

Wiki

wikiについては後から調べる.
wiki 編集機能の追加

まとめました!上のページはprototype.js時代の記事でした.
RedmineプラグインにWiki機能をつける

エラーページの表示はrender_403、render_404

controllerの分岐でエラーページを表示するときは専用のメソッドが用意されている.

メニューを選択状態にする

controllerの最初でmenu_itemメソッドを使う

翻訳

submitボタンの翻訳は次ので動いた.

modelのattributesで翻訳がうまくできず、field_**で翻訳できた.
別にactiverecord:の下でなくてもOK.

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

執筆者:

関連記事

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

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

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

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

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

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

Redmine3におけるインテグレーションテスト、UIテスト

By: Karoly Lorentey – CC BY 2.0 目次1 インテグレーションテスト?UIテスト?2 インテグレーションテスト3 UIテスト インテグレーションテスト?UIテス …

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

目次1 前回2 情報3 ViewHook4 フックの名称を調べる5 Redmine::Hook::ViewListenerを継承したクラスをつくる6 使いたいフックと同じ名称のメソッドを実装する7 i …