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のプラグイン製作
-,

執筆者:

関連記事

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

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

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

By: Cambodia4kids.org Beth Kanter – CC BY 2.0 目次1 環境2 フォーム3 表示4 プレビュー 環境 Wiki機能というよりは、Redmineの …

Rails4になったRedmineはprotected_attributesを使っているので注意が必要

By: Renaud Camus – CC BY 2.0 Rails4になったRedmineはprotected_attributesというgemを使っていますので、Rails3時代と同じ …

Selenium IDEからRubyのテストケースを書き出す

By: Kenny Louie – CC BY 2.0 目次1 Selenium IDE2 Selenium IDEのインストール3 Selenium IDEの立ち上げ方4 はじめてのSe …

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

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