X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=cgi%2Fpkgreport.cgi;h=d27caa13dc39c58dd5dc0a7216d1086fd39c32a1;hb=ced3cfe7d021c81f87cef4f157480068fb65701f;hp=d29c3abc7ff56943a7a0a2196be16e5560bda857;hpb=d61a76fc5e1b52929a02705c07ac03936fd14244;p=debbugs.git diff --git a/cgi/pkgreport.cgi b/cgi/pkgreport.cgi index d29c3ab..d27caa1 100755 --- a/cgi/pkgreport.cgi +++ b/cgi/pkgreport.cgi @@ -18,10 +18,9 @@ BEGIN{ delete @ENV{qw(IFS CDPATH ENV BASH_ENV)}; } -# STDOUT should be in utf8 mode -binmode(STDOUT,':utf8'); - +binmode(STDOUT,':encoding(UTF-8)'); use POSIX qw(strftime nice); +use List::AllUtils qw(uniq); use Debbugs::Config qw(:globals :text :config); @@ -40,6 +39,14 @@ use Debbugs::CGI::Pkgreport qw(:all); use Debbugs::Text qw(:templates); +use Debbugs::DB; + +my $s; +if (defined $config{database}) { + $s = Debbugs::DB->connect($config{database}) or + die "Unable to connect to DB"; +} + use CGI::Simple; my $q = new CGI::Simple; @@ -230,7 +237,8 @@ our %cats = ( "ord" => [2,3,4,1,0,5], } ], "oldview" => [ qw(status severity) ], - "normal" => [ qw(status severity classification) ], + "normal" => [ qw(status severity classification) ], + raw => [{nam => 'Raw',def => 'Raw'}], ); if (exists $param{which} and exists $param{data}) { @@ -277,7 +285,8 @@ if (defined $param{usertag}) { } } -quitcgi("You have to choose something to select by") unless grep {exists $param{$_}} keys %package_search_keys; +quitcgi("You have to choose something to select by", '400 Bad Request') + unless grep {exists $param{$_}} keys %package_search_keys; my $Archived = $param{archive} ? " Archived" : ""; @@ -378,6 +387,7 @@ my $title = $gBugs.' '.join(' and ', map {/ or /?"($_)":$_} @title); grep {$_ ne 'newest'} keys %package_search_keys, 'archive'), usertags => \%ut, + defined $s?(schema => $s):(), ); # shove in bugs which affect this package if there is a package or a @@ -391,6 +401,7 @@ if (not exists $param{affects} and not exists $param{noaffects} and grep {$_ ne 'newest'} keys %package_search_keys, 'archive'), usertags => \%ut, + defined $s?(schema => $s):(), ); } @@ -435,9 +446,11 @@ my $result = pkg_htmlizebugs(bugs => \@bugs, exclude => $exclude, this => $this, options => \%param, + defined $s?(schema => $s):(), (exists $param{dist})?(dist => $param{dist}):(), ); +print "Cache-Control: public, max-age=300\n"; print "Content-Type: text/html; charset=utf-8\n\n"; print "\n"; @@ -495,6 +508,9 @@ print fill_in_template(template=>'cgi/pkgreport_javascript'); print qq(

Options

\n); +$param{orderings} = + [uniq((grep {!$hidden{$_}} keys %cats), + $param{ordering})]; print option_form(template => 'cgi/pkgreport_options', param => \%param, form_options => $form_options,