################################################################################ # # <p>バグレポートを投稿するためのフォームを表示します。</p> # <p> # 引数としてプロジェクト名およびバグのカテゴリを指定します。 # </p> # <pre> # {{bugtrack プロジェクト名,カテゴリ1,カテゴリ2...}} # </pre> # <p> # このフォームからバグレポートを投稿すると # </p> # <pre> # BugTrack-プロジェクト名/番号 # </pre> # <p> # という名前のページが作成されます。 # 登録済みのバグレポートの状態を変更する場合は、バグレポートを直接編集し、 # 状態を「提案」「着手」「完了」「リリース済」「保留」「却下」のいずれかに # 書き換えてください。 # </p> # ################################################################################ package plugin::bugtrack::BugTrack; use strict; #=============================================================================== # コンストラクタ #=============================================================================== sub new { my $class = shift; my $self = {}; return bless $self,$class; } #=============================================================================== # パラグラフ #=============================================================================== sub paragraph { my $self = shift; my $wiki = shift; my $project = shift; my @category = @_; my $cgi = $wiki->get_CGI(); if($project eq ""){ return &Util::paragraph_error("プロジェクト名が指定されていません。"); } if($#category == -1){ return &Util::paragraph_error("カテゴリが指定されていません。"); } my $template = HTML::Template->new(filename=>$wiki->config('tmpl_dir')."/bugtrack.tmpl", die_on_bad_params => 0); my @priority = ("緊急","重要","普通","低"); my @status = ("提案","着手","完了","リリース済","保留","却下"); $template->param(PRIORITY => &make_array_ref(@priority)); $template->param(STATUS => &make_array_ref(@status)); $template->param(CATEGORY => &make_array_ref(@category)); # 名前を取得 my $name = $cgi->cookie(-name=>'post_name'); if($name eq ''){ my $login = $wiki->get_login_info(); if(defined($login)){ $name = $login->{id}; } } $template->param(NAME=>$name); my $buf = "<form action=\"".$wiki->create_url()."\" method=\"post\">\n". $template->output(). "<input type=\"hidden\" name=\"action\" value=\"BUG_POST\">\n". "<input type=\"hidden\" name=\"project\" value=\"".&Util::escapeHTML($project)."\">\n". "</form>\n"; return $buf; } #=============================================================================== # 選択項目の配列リファレンスを作成 #=============================================================================== sub make_array_ref { my @array = @_; my $arrayref = []; foreach(@array){ push(@$arrayref,{NAME=>$_,VALUE=>$_}); } return $arrayref; } 1;