]> git.donarmstrong.com Git - debbugs.git/commitdiff
- Add searching by owner (closes: #345407)
authorDon Armstrong <don@volo>
Sun, 18 Mar 2007 07:01:22 +0000 (00:01 -0700)
committerDon Armstrong <don@volo>
Sun, 18 Mar 2007 07:01:22 +0000 (00:01 -0700)
  - Accept colon after package in control mails (closes: #319720)
  - Make e-mail addresses case insensitive for searching
    (closes: #89569)'
  - Fix missing categories in pkgreport.cgi output

Debbugs/Bugs.pm
Debbugs/User.pm
cgi/pkgreport.cgi
debian/changelog
scripts/gen-indices.in
scripts/service.in

index 2246dec1d029a54eb994e8ccba6f8b52b13c480d..e63f2240b88f171a927137e97365de89ece10ce4 100644 (file)
@@ -239,6 +239,9 @@ sub get_bugs_by_idx{
                                          archive   => {type => BOOLEAN,
                                                        default => 0,
                                                       },
+                                         owner     => {type => SCALAR|ARRAYREF,
+                                                       optional => 1,
+                                                      },
                                          src       => {type => SCALAR|ARRAYREF,
                                                        optional => 1,
                                                       },
@@ -382,8 +385,8 @@ sub get_bugs_flatfile{
                             } @src_packages;
          }
          if (exists $param{submitter}) {
-              my @p_addrs = map {$_->address}
-                   map {lc(getparsedaddrs($_))}
+              my @p_addrs = map {lc($_->address)}
+                   map {getparsedaddrs($_)}
                         __make_list($param{submitter});
               my @f_addrs = map {$_->address}
                    getparsedaddrs($submitter||'');
index 7888f779a0f9795a2b7c29da37ec530c2db6f72a..0a7471376d35a085107830beeccf3d766cf5ad2c 100644 (file)
@@ -45,6 +45,7 @@ use vars qw($VERSION $DEBUG %EXPORT_TAGS @EXPORT_OK @EXPORT);
 use base qw(Exporter);
 
 use Debbugs::Config qw(:globals);
+use List::Util qw(min);
 
 BEGIN {
     ($VERSION) = q$Revision: 1.4 $ =~ /^Revision:\s+([^\s+])/;
@@ -175,8 +176,12 @@ sub get_user {
                     my %c = ("nam" => $stanza{"Cat${i}"});
                     $c{"def"} = $stanza{"Cat${i}Default"}
                         if defined $stanza{"Cat${i}Default"};
-                    $c{"ord"} = [ split /,/, $stanza{"Cat${i}Order"} ]
-                        if defined $stanza{"Cat${i}Order"};
+                    if (defined $stanza{"Cat${i}Order"}) {
+                        my @temp = split /\s*,\s*/, $stanza{"Cat${i}Order"};
+                        my $min = min(@temp);
+                        @temp = map {$_-$min} @temp;
+                        $c{ord} = [@temp];
+                   }
                     my @pri; my @ttl;
                     for my $l (split /\n/, $stanza{"Cat${i}Options"}) {
                         if ($l =~ m/^\s*(\S+)\s+-\s+(.*\S)\s*$/) {
index e32e45c8b85c366bfee3fa37be7c8f798ff82002..00c9ee5f011f77d8ff92c4ccb7ed3201050a26d8 100755 (executable)
@@ -111,7 +111,9 @@ my %cats = (
     "normal" => [ qw(status severity classification) ],
 );
 
-my ($pkg, $src, $maint, $maintenc, $submitter, $severity, $status, $tag, $usertag);
+my ($pkg, $src, $maint, $maintenc, $submitter, $severity, $status, $tag, $usertag,
+    $owner,
+   );
 
 my %which = (
         'pkg' => \$pkg,
@@ -122,6 +124,7 @@ my %which = (
         'severity' => \$severity,
         'tag' => \$tag,
        'usertag' => \$usertag,
+       'owner'   => \$owner,
         );
 my @allowedEmpty = ( 'maint' );
 
@@ -317,6 +320,14 @@ if (defined $pkg) {
                          return grep(exists $tags{$_}, @tags);
                         })};
 }
+elsif (defined $owner) {
+     $title = "bugs owned by $owner";
+     $title .= " in $dist" if defined $dist;
+     my @owners = split /,/, $tag;
+     my %bugs = ();
+     @bugs = get_bugs(owner=>\@owners);
+
+}
 $title = htmlsanit($title);
 
 my @names; my @prior; my @title; my @order;
@@ -333,7 +344,7 @@ print "Content-Type: text/html; charset=utf-8\n\n";
 
 print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
 print "<HTML><HEAD>\n" . 
-    "<TITLE>$gProject$Archived $gBug report logs: $title</TITLE>\n" .
+    "<TITLE>$title -- $gProject$Archived $gBug report logs</TITLE>\n" .
     qq(<link rel="stylesheet" href="$gWebHostBugDir/css/bugs.css" type="text/css">) .
     "</HEAD>\n" .
     '<BODY onload="pagemain();">' .
@@ -994,9 +1005,9 @@ sub determine_ordering {
 
            $h->{"nam"} = $param{"nam$i"}
                 if (defined $param{"nam$i"}); 
-            $h->{"ord"} = [ split /,/, $param{"ord$i"} ]
+            $h->{"ord"} = [ split /\s*,\s*/, $param{"ord$i"} ]
                 if (defined $param{"ord$i"}); 
-            $h->{"ttl"} = [ split /,/, $param{"ttl$i"} ]
+            $h->{"ttl"} = [ split /\s*,\s*/, $param{"ttl$i"} ]
                 if (defined $param{"ttl$i"}); 
 
             push @c, $h;
@@ -1032,7 +1043,7 @@ sub determine_ordering {
  
     $i = 0;
     for my $c (@cats) {
-        $i++;
+       $i++;
         push @prior, $c->{"pri"};
        push @names, ($c->{"nam"} || "Bug attribute #" . $i);
         if (defined $c->{"ord"}) {
@@ -1041,8 +1052,8 @@ sub determine_ordering {
             push @order, [ 0..$#{$prior[-1]} ];
         }
         my @t = @{ $c->{"ttl"} } if defined $c->{ttl};
-       if (($#t+1) < $#{$prior[-1]}) {
-            push @t, map { toenglish($prior[-1]->[$_]) } ($#t+1)..($#{$prior[-1]});
+       if ($#t < $#{$prior[-1]}) {
+            push @t, map { toenglish($prior[-1][$_]) } @t..($#{$prior[-1]});
        }
        push @t, $c->{"def"} || "";
         push @title, [@t];
index e581417436f513351a3e7987d27164b7ca68e5c1..2debb8731a422b8174d44059d8c5de1f18d08865 100644 (file)
@@ -159,6 +159,10 @@ debbugs (2.4.2) UNRELEASED; urgency=low
     - Support usertagging cloned bugs (closes: #375697)
     - List previous/new title when retitling, and show date of control
       actions (closes: #127354)
+    - Add searching by owner (closes: #345407)
+    - Accept colon after package in control mails (closes: #319720)
+    - Make e-mail addresses case insensitive for searching
+      (closes: #89569)
 
   
  -- Colin Watson <cjwatson@debian.org>  Fri, 20 Jun 2003 18:57:25 +0100
index 14d7b1c131e92a8f229be595ef2bebc7db561bef..730880a067d8d25f9fe318cd30eee4ca1d2248eb 100755 (executable)
@@ -182,9 +182,10 @@ while (my $dir = shift @dirs) {
                addbugtoindex("package", $bug, split /[\s,]+/, $fdata->{"package"});
                addbugtoindex("tag", $bug, split /[\s,]+/, $fdata->{"keywords"});
                addbugtoindex('submitter-email', $bug,
-                             map {$_->address} getparsedaddrs($fdata->{originator}));
+                             map {lc($_->address)} getparsedaddrs($fdata->{originator}));
                addbugtoindex("severity", $bug, $fdata->{"severity"});
-               addbugtoindex("owner", $bug, $fdata->{"owner"});
+               addbugtoindex("owner", $bug,
+                             map {lc($_->address)} getparsedaddrs($fdata->{"owner"}));
        }
 }
 
index 12e3bdf577c6a9c0893bbf3c50d4bc736e2ab2b7..e5074d329ad053ae5b2e99f6abdd54bf891f1059 100755 (executable)
@@ -1072,7 +1072,7 @@ END
                }
            }
        }
-    } elsif (m/^package\s+(\S.*\S)?\s*$/i) {
+    } elsif (m/^package\:?\s+(\S.*\S)?\s*$/i) {
         $ok++;
        my @pkgs = split /\s+/, $1;
        if (scalar(@pkgs) > 0) {