ログイン
i-mobile
記事の一覧
4.<[Rails] Mongrel1.1.5... | [Redmine][Google Cha...>6.

2010-08-20

[][][] GoogleChart の GraphViz Charts で Redmine のワークフローを視覚化してみた Add Star

Google Chart が GraphViz をサポートしたので、懸案だったワークフローの視覚化をやってみました。

http://code.google.com/intl/ja/apis/chart/docs/gallery/graphviz.html

気力とやる気の問題からプラグイン化はしていません。

環境

Redmine: 1.0.0(RC)

コード

WorkFlowHelper にチャート出力用URLパラメータ出力メソッドを追加

module WorkflowsHelper
  def generate_graph(role, tracker)
    edges = role.workflows.inject("") do |edge, workflow| 
      workflow.tracker_id == tracker.id ? "#{edge}#{workflow.old_status}->#{workflow.new_status};" : edge 
    end
    "http://chart.apis.google.com/chart?cht=gv&chl=digraph{#{CGI.escape(edges.gsub(/ /, '_').toutf8)}}&chs=500x500"
  end
end

ワークフロー編集ビューにグラフ描画を追加

app/views/workflows/edit.rhtmlの最後に以下を加える。

 <%= image_tag(generate_graph(@role, @tracker)) if @role %>

結果

こんな感じ。

うまく出力できました。

制約

  • GoogleChart API の制限として、長すぎるURLははじかれます。なので、ステータス数が増えてくると表示できなくなります。
  • さらに、漢字は以下のように化けてしまうので、基本的に日本語ステータス名は不可。

まとめ

  • GraphViz Chart の日本語サポートに期待
  • app/views/workflows/edit.rhtml の最後にビューフックが欲しい。それがあれば綺麗にプラグイン化できる。
  • GraphViz Chart のドキュメントはろくに読んでいない。それでも使える Google Chart API はすばらしい:)
▼名前
▼内容
▼画像認証

4.<[Rails] Mongrel1.1.5... | [Redmine][Google Cha...>6.
●ウェブ検索●