]> git.donarmstrong.com Git - debbugs.git/commitdiff
merge changes from don
authorDebian BTS <debbugs@rietz>
Sat, 9 Aug 2008 18:50:08 +0000 (18:50 +0000)
committerDebian BTS <debbugs@rietz>
Sat, 9 Aug 2008 18:50:08 +0000 (18:50 +0000)
Debbugs/Log.pm
Debbugs/Recipients.pm
Debbugs/Status.pm
templates/en_US/cgi/short_bug_status.tmpl

index c4d741e6ab46f322a9519075c2d60cbba416de64..5e7635147470ffc7137454fa4906d8ddc981618c 100644 (file)
@@ -169,7 +169,7 @@ sub new
                                spec   => {bug_num => {type => SCALAR,
                                                       optional => 1,
                                                      },
-                                          logfh   => {type => SCALAR,
+                                          logfh   => {type => HANDLE,
                                                       optional => 1,
                                                      },
                                           log_name => {type => SCALAR,
@@ -299,14 +299,36 @@ Takes a .log filehandle as input, and returns an array of all records in
 that file. Throws exceptions using die(), so you may want to wrap this in an
 eval().
 
+Uses exactly the same options as Debbugs::Log::new
+
 =cut
 
-sub read_log_records (*)
+sub read_log_records
 {
-    my $logfh = shift;
+    my %param;
+    if (@_ == 1) {
+        ($param{logfh}) = @_;
+    }
+    else {
+        %param = validate_with(params => \@_,
+                               spec   => {bug_num => {type => SCALAR,
+                                                      optional => 1,
+                                                     },
+                                          logfh   => {type => HANDLE,
+                                                      optional => 1,
+                                                     },
+                                          log_name => {type => SCALAR,
+                                                       optional => 1,
+                                                      },
+                                         }
+                              );
+    }
+    if (grep({exists $param{$_} and defined $param{$_}} qw(bug_num logfh log_name)) ne 1) {
+        croak "Exactly one of bug_num, logfh, or log_name must be passed and must be defined";
+    }
 
     my @records;
-    my $reader = Debbugs::Log->new($logfh);
+    my $reader = Debbugs::Log->new(%param);
     while (defined(my $record = $reader->read_record())) {
        push @records, $record;
     }
index 904106bc8e2a26a01eed892bbbe775cd3e2d2f52..a73bbd9a91bc933df62b45fa0ad0beb16f62835a 100644 (file)
@@ -304,7 +304,10 @@ sub determine_recipients {
      }
      for (qw(to cc bcc)) {
          if ($param{$_}) {
-              return @{$final_recipients{$_}};
+              if (exists $final_recipients{$_}) {
+                   return @{$final_recipients{$_}||[]};
+              }
+              return ();
          }
      }
      return %final_recipients;
index 1a5e7aeea6fe3d5ad4b01e5f5a8eb88502b22ab1..3b3961f90667ec7cbf654a371f49aa8d9399ad6d 100644 (file)
@@ -251,7 +251,7 @@ sub read_bug{
     # Add log last modified time
     $data{log_modified} = (stat($log))[9];
     $data{location} = $location;
-    $data{archived} = $location eq 'archive';
+    $data{archived} = (defined($location) and ($location eq 'archive'))?1:0;
     $data{bug_num} = $param{bug};
 
     return \%data;
index 94392d658a51f04cde170cfdb9c5500281b6bf07..8250930734387354611198041814896f0a5a07ab 100644 (file)
@@ -48,8 +48,7 @@
      $output = q(<span>Owned by: ).package_links(owner=>$status{owner}).q(;</span>);
   }
   $output;
-}
-<span>Severity: {my $output = $status{severity};
+}<span>Severity: {my $output = $status{severity};
               if (isstrongseverity($status{severity})) {
                    $output = q(<em class="severity">).$status{severity}.q(</em>);
               }
@@ -61,8 +60,7 @@
     $output .= q(<span>Merged with ).join(qq(,\n),bug_links(bug=>$status{mergedwith_array})).qq(;</span>\n);
  }
  $output;
-}
-{my $output = '';
+}{my $output = '';
  if (@{$status{found_versions}} or @{$status{fixed_versions}}) {
     $output .= '<a href="'.
          version_url(package => $status{package},
     $output .= qq(</a>);
  }
  $output;
-}
-{ my $output = '';
+}{ my $output = '';
+ if (length($status{forwarded})) {
+    $output = "<span><strong>Forwarded</strong> to " . 
+              join(', ',
+                  map {maybelink($_)}
+                   split /\,\s+/,$status{forwarded}
+                 ).";</span>\n";
+ }
+ $output;
+}{ my $output = '';
   if (length($status{done})) {
      $output .= q(<span><strong>Done:</strong> ).html_escape($status{done}).q(;</span> )
   }
   $output;
-}
-{ my $output = '';
+}{ my $output = '';
   if (@{$status{blockedby_array}}) {
      $output .= q(<span>Fix blocked by ).
         join(q(, ),