OSDN Git Service

編集画面で差分を確認できるようにした。
[fswiki/fswiki.git] / plugin / bugtrack / BugTrack.pm
1 ################################################################################
2 #
3 # <p>¥Ð¥°¥ì¥Ý¡¼¥È¤òÅê¹Æ¤¹¤ë¤¿¤á¤Î¥Õ¥©¡¼¥à¤òɽ¼¨¤·¤Þ¤¹¡£</p>
4 # <p>
5 #   °ú¿ô¤È¤·¤Æ¥×¥í¥¸¥§¥¯¥È̾¤ª¤è¤Ó¥Ð¥°¤Î¥«¥Æ¥´¥ê¤ò»ØÄꤷ¤Þ¤¹¡£
6 # </p>
7 # <pre>
8 # {{bugtrack ¥×¥í¥¸¥§¥¯¥È̾,¥«¥Æ¥´¥ê£±,¥«¥Æ¥´¥ê£²...}}
9 # </pre>
10 # <p>
11 #   ¤³¤Î¥Õ¥©¡¼¥à¤«¤é¥Ð¥°¥ì¥Ý¡¼¥È¤òÅê¹Æ¤¹¤ë¤È
12 # </p>
13 # <pre>
14 # BugTrack-¥×¥í¥¸¥§¥¯¥È̾/ÈÖ¹æ
15 # </pre>
16 # <p>
17 #   ¤È¤¤¤¦Ì¾Á°¤Î¥Ú¡¼¥¸¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£
18 #   ÅÐÏ¿ºÑ¤ß¤Î¥Ð¥°¥ì¥Ý¡¼¥È¤Î¾õÂÖ¤òÊѹ¹¤¹¤ë¾ì¹ç¤Ï¡¢¥Ð¥°¥ì¥Ý¡¼¥È¤òľÀÜÊÔ½¸¤·¡¢
19 #   ¾õÂÖ¤ò¡ÖÄó°Æ¡×¡ÖÃå¼ê¡×¡Ö´°Î»¡×¡Ö¥ê¥ê¡¼¥¹ºÑ¡×¡ÖÊÝα¡×¡ÖµÑ²¼¡×¤Î¤¤¤º¤ì¤«¤Ë
20 #   ½ñ¤­´¹¤¨¤Æ¤¯¤À¤µ¤¤¡£
21 # </p>
22
23 ################################################################################
24 package plugin::bugtrack::BugTrack;
25 use strict;
26 #===============================================================================
27 # ¥³¥ó¥¹¥È¥é¥¯¥¿
28 #===============================================================================
29 sub new {
30         my $class = shift;
31         my $self = {};
32         return bless $self,$class;
33 }
34
35 #===============================================================================
36 # ¥Ñ¥é¥°¥é¥Õ
37 #===============================================================================
38 sub paragraph {
39         my $self     = shift;
40         my $wiki     = shift;
41         my $project  = shift;
42         my @category = @_;
43         my $cgi      = $wiki->get_CGI();
44         
45         if($project eq ""){
46                 return &Util::paragraph_error("¥×¥í¥¸¥§¥¯¥È̾¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
47         }
48         if($#category == -1){
49                 return &Util::paragraph_error("¥«¥Æ¥´¥ê¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
50         }
51         
52         my $template = HTML::Template->new(filename=>$wiki->config('tmpl_dir')."/bugtrack.tmpl",
53                                            die_on_bad_params => 0);
54         
55         my @priority = ("¶ÛµÞ","½ÅÍ×","ÉáÄÌ","Äã");
56         my @status   = ("Äó°Æ","Ãå¼ê","´°Î»","¥ê¥ê¡¼¥¹ºÑ","ÊÝα","µÑ²¼");
57         
58         $template->param(PRIORITY => &make_array_ref(@priority));
59         $template->param(STATUS   => &make_array_ref(@status));
60         $template->param(CATEGORY => &make_array_ref(@category));
61         
62         # Ì¾Á°¤ò¼èÆÀ
63         my $name = Util::url_decode($cgi->cookie(-name=>'fswiki_post_name'));
64         if($name eq ''){
65                 my $login = $wiki->get_login_info();
66                 if(defined($login)){
67                         $name = $login->{id};
68                 }
69         }
70         $template->param(NAME=>$name);
71         
72         my $buf = "<form action=\"".$wiki->create_url()."\" method=\"post\">\n".
73                   $template->output().
74                   "<input type=\"hidden\" name=\"action\" value=\"BUG_POST\">\n".
75                   "<input type=\"hidden\" name=\"project\" value=\"".&Util::escapeHTML($project)."\">\n".
76                   "</form>\n";
77         
78         return $buf;
79 }
80
81 #===============================================================================
82 # ÁªÂò¹àÌܤÎÇÛÎó¥ê¥Õ¥¡¥ì¥ó¥¹¤òºîÀ®
83 #===============================================================================
84 sub make_array_ref {
85         my @array    = @_;
86         my $arrayref = [];
87         foreach(@array){
88                 push(@$arrayref,{NAME=>$_,VALUE=>$_});
89         }
90         return $arrayref;
91 }
92
93
94 1;