プロジェクト

全般

プロフィール

プラグイン Tips » 履歴 » バージョン 2

Toshiyuki Ando, 2009/06/28 09:54

1 1 Toshiyuki Ando
h1. プラグイン Tips
2
3
チュートリアルの域を超えそうなものはこちらに?
4
5
h2. 活動ページにプラグインの履歴を表示する
6
7
Hudson プラグインを例にとり、プラグインの履歴を表示する方法を紹介します。
8
9 2 Toshiyuki Ando
h3. 準備するもの
10 1 Toshiyuki Ando
11 2 Toshiyuki Ando
* 履歴の名前
12
* 履歴を表示するクラス
13
14
Hudson の場合は、
15
16
* 履歴の名前: hudson
17
* 履歴を表示するクラス: HudsonBuild (ビルドを活動の履歴としたいので)
18
19
としました。
20
21
h3. サイドバーに表示される履歴の名前に、自分のプラグインを追加する
22
23 1 Toshiyuki Ando
h4. 1. init.rb で活動ページに参加することを宣言する
24
25
以下のコードを Redmine::Plugin.register の中に追加します。
26
27
<pre><code class="ruby">
28 2 Toshiyuki Ando
  activity_provider :[履歴の名前], :class_name => '[履歴を管理するクラス]', :default => false
29 1 Toshiyuki Ando
</code></pre>
30
31
Hudson の場合は以下のようになります。
32 2 Toshiyuki Ando
default => false は、サイドバーのチェックボックスの状態で、最初表示した時にはチェックされないことを意味します。
33 1 Toshiyuki Ando
34
<pre><code class="ruby">
35
  activity_provider :hudson, :class_name => 'HudsonBuild', :default => false
36
</code></pre>
37
38 2 Toshiyuki Ando
h4. 2. 権限に view_[履歴の名前] を追加する
39 1 Toshiyuki Ando
40
活動の履歴では権限をチェックします。
41 2 Toshiyuki Ando
現在ログインしているユーザが履歴を閲覧してよいかどうかは、 *view_[履歴の名前]権限が許されているかどうか* に依存します。
42 1 Toshiyuki Ando
43 2 Toshiyuki Ando
Hudsonプラグインで言うと、履歴の種類が hudson なので、 *view_hudson* 権限が必要です。
44
*init.rb に記述する権限に view_hudson がないと、権限なしとみなされてサイドバーに履歴の名前が表示されません。*
45 1 Toshiyuki Ando
46
<pre><code class="ruby">
47
  project_module :hudson do
48
    # パーミッション設定。
49
    permission :view_hudson, {:hudson => [:index, :history]}  # !!ここ大事!!
50
    permission :build_hudson, {:hudson => [:build]}, :require => :member
51
    permission :edit_hudson_settings, {:hudson_settings => [:edit, :joblist]}
52
  end
53
</code></pre>
54
55
h4. 3. 言語ファイルに label_[イベントの種類]_plural というエントリを追加する
56
57
サイドバーに表示する用語は、 label_[イベントの種類]_plural に統一されています。
58
Hudsonだと label_hudson_plural ですね。
59
言語ファイルに登録しておかないと label_hudson_plural が表示されるという、格好悪いことになります。