プロジェクト

全般

プロフィール

プラグイン Tips » 履歴 » リビジョン 2

リビジョン 1 (Toshiyuki Ando, 2009/06/28 08:45) → リビジョン 2/16 (Toshiyuki Ando, 2009/06/28 09:54)

h1. プラグイン Tips 

 チュートリアルの域を超えそうなものはこちらに? 

 h2. 活動ページにプラグインの履歴を表示する 

 Hudson プラグインを例にとり、プラグインの履歴を表示する方法を紹介します。 

 h3. 準備するもの サイドバーに表示される履歴の種類に、自分のプラグインを追加する 

 * 履歴の名前 
 * 履歴を表示するクラス 

 Hudson の場合は、 

 * 履歴の名前: hudson 
 * 履歴を表示するクラス: HudsonBuild (ビルドを活動の履歴としたいので) 

 としました。 

 h3. サイドバーに表示される履歴の名前に、自分のプラグインを追加する 

 h4. 1. init.rb で活動ページに参加することを宣言する 

 以下のコードを Redmine::Plugin.register の中に追加します。 

 <pre><code class="ruby"> 
   activity_provider :[履歴の名前], :[履歴の種類], :class_name => '[履歴を管理するクラス]', :default => false 
 </code></pre> 

 Hudson の場合は以下のようになります。 
 default => false は、サイドバーのチェックボックスの状態で、最初表示した時にはチェックされないことを意味します。 

 <pre><code class="ruby"> 
   activity_provider :hudson, :class_name => 'HudsonBuild', :default => false 
 </code></pre> 

 h4. 2. 権限に view_[履歴の名前] view_[履歴の種類] を追加する 

 活動の履歴では権限をチェックします。 
 現在ログインしているユーザが履歴を閲覧してよいかどうかは、 *view_[履歴の名前]権限が許されているかどうか* に依存します。  
 *view_[履歴の種類]* 権限が許されているかどうかに依存します。 

 Hudsonプラグインで言うと、履歴の種類が Hudsonの例で言うと、履歴の種類が hudson なので、 *view_hudson* 権限が必要です。 
 *init.rb に記述する権限に 従って、init.rb に記載する権限の種類に view_hudson がないと、権限なしとみなされてサイドバーに履歴の名前が表示されません。* がないと、権限なし とみなされてサイドバーに履歴の種類が表示されません。 

 <pre><code class="ruby"> 
   project_module :hudson do 
     # パーミッション設定。 
     permission :view_hudson, {:hudson => [:index, :history]}    # !!ここ大事!! 
     permission :build_hudson, {:hudson => [:build]}, :require => :member 
     permission :edit_hudson_settings, {:hudson_settings => [:edit, :joblist]} 
   end 
 </code></pre> 

 h4. 3. 言語ファイルに label_[イベントの種類]_plural というエントリを追加する 

 サイドバーに表示する用語は、 label_[イベントの種類]_plural に統一されています。 
 Hudsonだと label_hudson_plural ですね。 
 言語ファイルに登録しておかないと label_hudson_plural が表示されるという、格好悪いことになります。