[ros-diffs] [cfinck] 32453: Update to Bugzilla 3.0.3

cfinck at svn.reactos.org cfinck at svn.reactos.org
Fri Feb 22 16:16:18 CET 2008


Author: cfinck
Date: Fri Feb 22 18:16:17 2008
New Revision: 32453

URL: http://svn.reactos.org/svn/reactos?rev=32453&view=rev
Log:
Update to Bugzilla 3.0.3

Modified:
    trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Bug.pm
    trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/BugMail.pm
    trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Constants.pm
    trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/DB.pm
    trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Hook.pm
    trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Install/Requirements.pm
    trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Mailer.pm
    trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search.pm
    trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search/Quicksearch.pm
    trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Template.pm
    trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/User.pm
    trunk/web/reactos.org/htdocs/bugzilla/QUICKSTART
    trunk/web/reactos.org/htdocs/bugzilla/UPGRADING-pre-2.8
    trunk/web/reactos.org/htdocs/bugzilla/buglist.cgi
    trunk/web/reactos.org/htdocs/bugzilla/config.cgi
    trunk/web/reactos.org/htdocs/bugzilla/contrib/README
    trunk/web/reactos.org/htdocs/bugzilla/contrib/merge-users.pl
    trunk/web/reactos.org/htdocs/bugzilla/contrib/syncLDAP.pl
    trunk/web/reactos.org/htdocs/bugzilla/editusers.cgi
    trunk/web/reactos.org/htdocs/bugzilla/email_in.pl
    trunk/web/reactos.org/htdocs/bugzilla/mod_perl.pl
    trunk/web/reactos.org/htdocs/bugzilla/post_bug.cgi
    trunk/web/reactos.org/htdocs/bugzilla/query.cgi
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/components/confirm-delete.html.tmpl
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/groups/delete.html.tmpl
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/params/auth.html.tmpl
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/confirm-delete.html.tmpl
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/list-classifications.html.tmpl
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/users/confirm-delete.html.tmpl
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/bug/dependency-tree.html.tmpl
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.js.tmpl
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.rdf.tmpl
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/user-error.html.tmpl
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/list.ics.tmpl
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/quips.html.tmpl
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/quicksearchhack.html.tmpl
    trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/release-notes.html.tmpl

Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Bug.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Bug.pm?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Bug.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Bug.pm Fri Feb 22 18:16:17 2008
@@ -1391,7 +1391,7 @@
     # Obsolete custom fields are not editable.
     my @obsolete_fields = Bugzilla->get_fields({obsolete => 1, custom => 1});
     @obsolete_fields = map { $_->name } @obsolete_fields;
-    foreach my $remove ("bug_id", "creation_ts", "delta_ts", "lastdiffed", @obsolete_fields) {
+    foreach my $remove ("bug_id", "reporter", "creation_ts", "delta_ts", "lastdiffed", @obsolete_fields) {
         my $location = lsearch(\@fields, $remove);
         splice(@fields, $location, 1);
     }

Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/BugMail.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/BugMail.pm?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/BugMail.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/BugMail.pm Fri Feb 22 18:16:17 2008
@@ -110,7 +110,7 @@
     }
 
     my %values = %{$dbh->selectrow_hashref(
-        'SELECT ' . join(',', editable_bug_fields()) . ',
+        'SELECT ' . join(',', editable_bug_fields()) . ', reporter,
                 lastdiffed AS start, LOCALTIMESTAMP(0) AS end
            FROM bugs WHERE bug_id = ?',
         undef, $id)};

Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Constants.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Constants.pm?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Constants.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Constants.pm Fri Feb 22 18:16:17 2008
@@ -146,7 +146,7 @@
 # CONSTANTS
 #
 # Bugzilla version
-use constant BUGZILLA_VERSION => "3.0.2";
+use constant BUGZILLA_VERSION => "3.0.3";
 
 #
 # ControlMap constants for group_control_map.

Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/DB.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/DB.pm?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/DB.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/DB.pm Fri Feb 22 18:16:17 2008
@@ -898,7 +898,6 @@
                   } if (!defined($attributes));
 
     # connect using our known info to the specified db
-    # Apache::DBI will cache this when using mod_perl
     my $self = DBI->connect($dsn, $user, $pass, $attributes)
         or die "\nCan't connect to the database.\nError: $DBI::errstr\n"
         . "  Is your database installed and up and running?\n  Do you have"

Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Hook.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Hook.pm?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Hook.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Hook.pm Fri Feb 22 18:16:17 2008
@@ -46,6 +46,8 @@
             do($extension.'/code/'.$name.'.pl');
             ThrowCodeError('extension_invalid', 
                 { errstr => $@, name => $name, extension => $extension }) if $@;
+            # Flush stored data.
+            Bugzilla->hook_args({});
         }
     }
     

Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Install/Requirements.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Install/Requirements.pm?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Install/Requirements.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Install/Requirements.pm Fri Feb 22 18:16:17 2008
@@ -219,12 +219,6 @@
         package => 'CGI',
         module  => 'CGI',
         version => '3.11',
-        feature => 'mod_perl'
-    },
-    {
-        package => 'Apache-DBI',
-        module  => 'Apache::DBI',
-        version => '0.96',
         feature => 'mod_perl'
     },
     );
@@ -585,7 +579,7 @@
         $package = $module->{package};
     }
     else {
-        $command = "$^X -MCPAN -e 'install \%s'";
+        $command = "$^X -MCPAN -e 'install \"\%s\"'";
         # Non-Windows installations need to use module names, because
         # CPAN doesn't understand package names.
         $package = $module->{module};

Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Mailer.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Mailer.pm?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Mailer.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Mailer.pm Fri Feb 22 18:16:17 2008
@@ -69,6 +69,8 @@
         if (my $value = $email->header($header)) {
             $value = Encode::decode("UTF-8", $value) if Bugzilla->params->{'utf8'};
             my $encoded = encode('MIME-Q', $value);
+            # Encode adds unnecessary line breaks, with two spaces after each.
+            $encoded =~ s/\n  / /g;
             $email->header_set($header, $encoded);
         }
     }

Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search.pm?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search.pm Fri Feb 22 18:16:17 2008
@@ -166,7 +166,7 @@
     }
     
     if (grep($_ =~/AS (actual_time|percentage_complete)$/, @$fieldsref)) {
-        push(@supptables, "INNER JOIN longdescs AS ldtime " .
+        push(@supptables, "LEFT JOIN longdescs AS ldtime " .
                           "ON ldtime.bug_id = bugs.bug_id");
     }
 
@@ -565,20 +565,20 @@
 
          "^long_?desc,changedby" => sub {
              my $table = "longdescs_$chartid";
-             push(@supptables, "INNER JOIN longdescs AS $table " .
+             push(@supptables, "LEFT JOIN longdescs AS $table " .
                                "ON $table.bug_id = bugs.bug_id");
              my $id = login_to_id($v, THROW_ERROR);
              $term = "$table.who = $id";
          },
          "^long_?desc,changedbefore" => sub {
              my $table = "longdescs_$chartid";
-             push(@supptables, "INNER JOIN longdescs AS $table " .
+             push(@supptables, "LEFT JOIN longdescs AS $table " .
                                "ON $table.bug_id = bugs.bug_id");
              $term = "$table.bug_when < " . $dbh->quote(SqlifyDate($v));
          },
          "^long_?desc,changedafter" => sub {
              my $table = "longdescs_$chartid";
-             push(@supptables, "INNER JOIN longdescs AS $table " .
+             push(@supptables, "LEFT JOIN longdescs AS $table " .
                                "ON $table.bug_id = bugs.bug_id");
              $term = "$table.bug_when > " . $dbh->quote(SqlifyDate($v));
          },
@@ -598,7 +598,7 @@
              {
                  $extra = "AND $table.isprivate < 1";
              }
-             push(@supptables, "INNER JOIN longdescs AS $table " .
+             push(@supptables, "LEFT JOIN longdescs AS $table " .
                                "ON bugs.bug_id = $table.bug_id $extra");
 
              # Create search terms to add to the SELECT and WHERE clauses.
@@ -704,7 +704,7 @@
              {
                  $extra = "AND $table.isprivate < 1";
              }
-             push(@supptables, "INNER JOIN longdescs AS $table " .
+             push(@supptables, "LEFT JOIN longdescs AS $table " .
                                "ON $table.bug_id = bugs.bug_id $extra");
              $f = "$table.thetext";
          },
@@ -716,13 +716,13 @@
              {
                  $extra = "AND $table.isprivate < 1";
              }
-             push(@supptables, "INNER JOIN longdescs AS $table " .
+             push(@supptables, "LEFT JOIN longdescs AS $table " .
                                "ON $table.bug_id = bugs.bug_id $extra");
              $f = "$table.isprivate";
          },
          "^work_time,changedby" => sub {
              my $table = "longdescs_$chartid";
-             push(@supptables, "INNER JOIN longdescs AS $table " .
+             push(@supptables, "LEFT JOIN longdescs AS $table " .
                                "ON $table.bug_id = bugs.bug_id");
              my $id = login_to_id($v, THROW_ERROR);
              $term = "(($table.who = $id";
@@ -730,21 +730,21 @@
          },
          "^work_time,changedbefore" => sub {
              my $table = "longdescs_$chartid";
-             push(@supptables, "INNER JOIN longdescs AS $table " .
+             push(@supptables, "LEFT JOIN longdescs AS $table " .
                                "ON $table.bug_id = bugs.bug_id");
              $term = "(($table.bug_when < " . $dbh->quote(SqlifyDate($v));
              $term .= ") AND ($table.work_time <> 0))";
          },
          "^work_time,changedafter" => sub {
              my $table = "longdescs_$chartid";
-             push(@supptables, "INNER JOIN longdescs AS $table " .
+             push(@supptables, "LEFT JOIN longdescs AS $table " .
                                "ON $table.bug_id = bugs.bug_id");
              $term = "(($table.bug_when > " . $dbh->quote(SqlifyDate($v));
              $term .= ") AND ($table.work_time <> 0))";
          },
          "^work_time," => sub {
              my $table = "longdescs_$chartid";
-             push(@supptables, "INNER JOIN longdescs AS $table " .
+             push(@supptables, "LEFT JOIN longdescs AS $table " .
                                "ON $table.bug_id = bugs.bug_id");
              $f = "$table.work_time";
          },
@@ -776,7 +776,7 @@
                  if(lsearch(\@fields, "bugs.remaining_time") == -1) {
                      push(@fields, "bugs.remaining_time");                  
                  }
-                 push(@supptables, "INNER JOIN longdescs AS $table " .
+                 push(@supptables, "LEFT JOIN longdescs AS $table " .
                                    "ON $table.bug_id = bugs.bug_id");
                  my $expression = "(100 * ((SUM($table.work_time) *
                                              COUNT(DISTINCT $table.bug_when) /
@@ -1112,7 +1112,7 @@
          ",anyexact" => sub {
              my @list;
              foreach my $w (split(/,/, $v)) {
-                 if ($w eq "---" && $f !~ /milestone/) {
+                 if ($w eq "---" && $f =~ /resolution/) {
                      $w = "";
                  }
                  $q = $dbh->quote($w);
@@ -1427,21 +1427,20 @@
     my $suppstring = "bugs";
     my @supplist = (" ");
     foreach my $str (@supptables) {
-        if (!$suppseen{$str}) {
-            if ($str =~ /^(LEFT|INNER|RIGHT)\s+JOIN/i) {
-                $str =~ /^(.*?)\s+ON\s+(.*)$/i;
-                my ($leftside, $rightside) = ($1, $2);
-                if ($suppseen{$leftside}) {
-                    $supplist[$suppseen{$leftside}] .= " AND ($rightside)";
-                } else {
-                    $suppseen{$leftside} = scalar @supplist;
-                    push @supplist, " $leftside ON ($rightside)";
-                }
+
+        if ($str =~ /^(LEFT|INNER|RIGHT)\s+JOIN/i) {
+            $str =~ /^(.*?)\s+ON\s+(.*)$/i;
+            my ($leftside, $rightside) = ($1, $2);
+            if (defined $suppseen{$leftside}) {
+                $supplist[$suppseen{$leftside}] .= " AND ($rightside)";
             } else {
-                # Do not accept implicit joins using comma operator
-                # as they are not DB agnostic
-                ThrowCodeError("comma_operator_deprecated");
+                $suppseen{$leftside} = scalar @supplist;
+                push @supplist, " $leftside ON ($rightside)";
             }
+        } else {
+            # Do not accept implicit joins using comma operator
+            # as they are not DB agnostic
+            ThrowCodeError("comma_operator_deprecated");
         }
     }
     $suppstring .= join('', @supplist);

Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search/Quicksearch.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search/Quicksearch.pm?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search/Quicksearch.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Search/Quicksearch.pm Fri Feb 22 18:16:17 2008
@@ -267,7 +267,7 @@
                 foreach my $or_operand (split(/\|/, $qsword)) {
                     if ($or_operand =~ /^votes:([0-9]+)$/) {
                         # votes:xx ("at least xx votes")
-                        addChart('votes', 'greaterthan', $1, $negate);
+                        addChart('votes', 'greaterthan', $1 - 1, $negate);
                     }
                     elsif ($or_operand =~ /^([^:]+):([^:]+)$/) {
                         # generic field1,field2,field3:value1,value2 notation

Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Template.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Template.pm?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Template.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/Template.pm Fri Feb 22 18:16:17 2008
@@ -42,10 +42,12 @@
 use MIME::Base64;
 use Bugzilla::Bug;
 
+use Cwd qw(abs_path);
 # for time2str - replace by TT Date plugin??
 use Date::Format ();
+use File::Basename qw(dirname);
 use File::Find;
-use File::Path;
+use File::Path qw(rmtree mkpath);
 use File::Spec;
 use IO::Dir;
 
@@ -898,6 +900,26 @@
         }
     }
 
+    # Under mod_perl, we look for templates using the absolute path of the
+    # template directory, which causes Template Toolkit to look for their 
+    # *compiled* versions using the full absolute path under the data/template
+    # directory. (Like data/template/var/www/html/mod_perl/.) To avoid
+    # re-compiling templates under mod_perl, we symlink to the
+    # already-compiled templates. This doesn't work on Windows.
+    if (!ON_WINDOWS) {
+        my $abs_root = dirname(abs_path($templatedir));
+        my $todir    = "$datadir/template$abs_root";
+        mkpath($todir);
+        # We use abs2rel so that the symlink will look like 
+        # "../../../../template" which works, while just 
+        # "data/template/template/" doesn't work.
+        my $fromdir = File::Spec->abs2rel("$datadir/template/template", $todir);
+        # We eval for systems that can't symlink at all, where "symlink" 
+        # throws a fatal error.
+        eval { symlink($fromdir, "$todir/template") 
+                   or warn "Failed to symlink from $fromdir to $todir: $!" };
+    }
+
     # If anything created a Template object before now, clear it out.
     delete Bugzilla->request_cache->{template};
 }

Modified: trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/User.pm
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/User.pm?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/User.pm (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/Bugzilla/User.pm Fri Feb 22 18:16:17 2008
@@ -562,21 +562,16 @@
 sub can_edit_product {
     my ($self, $prod_id) = @_;
     my $dbh = Bugzilla->dbh;
-    my $sth = $self->{sthCanEditProductId};
-    my $userid = $self->{id};
-    my $query = q{SELECT group_id FROM group_control_map 
-                   WHERE product_id =? 
-                     AND canedit != 0 };
-    if (%{$self->groups}) {
-        my $groups = join(',', values(%{$self->groups}));
-        $query .= qq{AND group_id NOT IN($groups)};
-    }
-    unless ($sth) { $sth = $dbh->prepare($query); }
-    $sth->execute($prod_id);
-    $self->{sthCanEditProductId} = $sth;
-    my $result = $sth->fetchrow_array();
-    
-    return (!defined($result));
+
+    my $has_external_groups =
+      $dbh->selectrow_array('SELECT 1
+                               FROM group_control_map
+                              WHERE product_id = ?
+                                AND canedit != 0
+                                AND group_id NOT IN(' . $self->groups_as_string . ')',
+                             undef, $prod_id);
+
+    return !$has_external_groups;
 }
 
 sub can_see_bug {
@@ -771,7 +766,7 @@
 
     ($self->in_group('editcomponents', $product->id)
        && $self->can_see_product($product->name))
-         || ThrowUserError('product_access_denied', {product => $product->name});
+         || ThrowUserError('product_admin_denied', {product => $product->name});
 
     # Return the validated product object.
     return $product;
@@ -1375,8 +1370,8 @@
         
         if ($fieldName eq "CC") {
             my $login = $self->login;
-            my $inold = ($old =~ /^(.*,)?\Q$login\E(,.*)?$/);
-            my $innew = ($new =~ /^(.*,)?\Q$login\E(,.*)?$/);
+            my $inold = ($old =~ /^(.*,\s*)?\Q$login\E(,.*)?$/);
+            my $innew = ($new =~ /^(.*,\s*)?\Q$login\E(,.*)?$/);
             if ($inold != $innew)
             {
                 $events{+EVT_ADDED_REMOVED} = 1;

Modified: trunk/web/reactos.org/htdocs/bugzilla/QUICKSTART
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/QUICKSTART?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/QUICKSTART (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/QUICKSTART Fri Feb 22 18:16:17 2008
@@ -27,9 +27,6 @@
 4. Edit the localconfig file, in particular the $webservergroup and 
    $db_* variables. In particular, $db_name and $db_user will define
    your database setup in step 5.
-
-   If you want to change platforms, operating systems, severities and
-   priorities, this can also be done in localconfig at this time.
 
 5. Using the name you provided as $db_name above, create a MySQL database
    for Bugzilla. You should also create a user permission for the name
@@ -67,7 +64,7 @@
    account information you provided in step 6.
 
 9. Scroll to the bottom of the page after logging in, and select
-   "parameters". Set up the relevant parameters for your local setup. 
+   "Parameters". Set up the relevant parameters for your local setup. 
 
    See section 4.2 of the Bugzilla Guide for a in-depth description of
    some of the configuration parameters available.

Modified: trunk/web/reactos.org/htdocs/bugzilla/UPGRADING-pre-2.8
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/UPGRADING-pre-2.8?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/UPGRADING-pre-2.8 (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/UPGRADING-pre-2.8 Fri Feb 22 18:16:17 2008
@@ -3,6 +3,11 @@
 If you are upgrading from 2.8 or newer, please read the Installation and
 Upgrade instructions in The Bugzilla Guide, found with this distribution in
 docs/html, docs/txt, and docs/sgml.
+
+Please note that the period in our version numbers is a place separator, not
+a decimal point.  The 14 in version 2.14 is newer than the 8 in 2.8, for
+example.  You should only be using this file if you have a single digit
+after the period in the version 2.x Bugzilla you are upgrading from.
 
 For a complete list of what changes, use Bonsai
 (http://cvs-mirror.mozilla.org/webtools/bonsai/cvsqueryform.cgi) to

Modified: trunk/web/reactos.org/htdocs/bugzilla/buglist.cgi
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/buglist.cgi?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/buglist.cgi (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/buglist.cgi Fri Feb 22 18:16:17 2008
@@ -932,7 +932,7 @@
 # Now put $db_order into a format that Bugzilla::Search can use.
 # (We create $db_order as a string first because that's the way
 # we did it before Bugzilla::Search took an "order" argument.)
-my @orderstrings = split(',', $db_order);
+my @orderstrings = split(/,\s*/, $db_order);
 
 # Generate the basic SQL query that will be used to generate the bug list.
 my $search = new Bugzilla::Search('fields' => \@selectnames, 

Modified: trunk/web/reactos.org/htdocs/bugzilla/config.cgi
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/config.cgi?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/config.cgi (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/config.cgi Fri Feb 22 18:16:17 2008
@@ -55,6 +55,8 @@
 $vars->{'keyword'}    = [map($_->name, Bugzilla::Keyword->get_all)];
 $vars->{'resolution'} = get_legal_field_values('resolution');
 $vars->{'status'}    = get_legal_field_values('bug_status');
+$vars->{'custom_fields'} =
+  [Bugzilla->get_fields({custom => 1, obsolete => 0, type => FIELD_TYPE_SINGLE_SELECT})];
 
 # Include a list of product objects.
 if ($cgi->param('product')) {

Modified: trunk/web/reactos.org/htdocs/bugzilla/contrib/README
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/contrib/README?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/contrib/README (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/contrib/README Fri Feb 22 18:16:17 2008
@@ -1,47 +1,73 @@
 This directory contains contributed software related to Bugzilla.
 Things in here have not necessarily been tested or tried by anyone
-except the original contributor, so tred carefully.  But it may still
-be useful to you.
+except the original contributor, so tread carefully.  But it may still
+be useful to you. Read the files themselves for detailed usage information
+on any specific script.
 
 This file is encoded in UTF8 for purposes of contributor names.
 
 This directory includes:
 
+bugzilla_ldapsync.rb --  Script that can be run via Cron that queries an LDAP
+                         server for e-mail addresses to add Bugzilla users
+                         for. Will optionally disable Bugzilla users with
+                         no matching LDAP record. Contributed by Thomas
+                         Stromberg <thomas+bugzilla at stromberg.org>.
+
     bugzilla-submit/ --  A standalone bug submission program.
 
-   mysqld-watcher.pl --  This script can be installed as a frequent cron 
-                         job to clean up stalled/dead queries.
+         bzdbcopy.pl --  A script to copy data from an installation running 
+                         on one DB platform to an installation running on 
+                         another DB platform.
 
-       sendbugmail.pl -- This script is a drop-in replacement for the
-                         'processmail' script which used to be shipped
-                         with Bugzilla, but was replaced by the
-                         Bugzilla/BugMail.pm Perl module.  You can use
-                         this script if you were previously calling
-                         processmail from other scripts external to
-                         Bugzilla.  See the comments at the top of
-                         the file for usage information.  Contributed
-                         by Nick Barnes of Ravenbrook Limited.
+bz_webservice_demo.p --  An example script that demonstrates how to talk to
+                         Bugzilla via XMLRPC.
+
+             cmdline/ -- Various commands for querying your Bugzilla 
+                         installation.
+
+       cvs-update.pl --  Script to keep a record of all CVS updates made 
+                         from a given directory. The log is useful when
+                         changes need to be backed out.
 
          gnatsparse/ --  A Python script used to import a GNATS database
                          into Bugzilla.
 
-         gnats2bz.pl --  A perl script to help import bugs from a GNATS 
+         gnats2bz.pl --  A Perl script to help import bugs from a GNATS 
                          database into a Bugzilla database.  Contributed by
-                         Tom Schutter <tom at platte.com>
- 
-        yp_nomail.sh --  Script you can run via cron that regularly updates
-                         the nomail file for terminated employees 
+                         Tom Schutter <tom at platte.com>.
 
-bugzilla_ldapsync.rb --  Script you can run via cron that queries an LDAP
-                         server for e-mail addresses to add Bugzilla users
-                         for. Will optionally disable Bugzilla users with
-                         no matching LDAP record. Contributed by Thomas
-                         Stromberg <thomas+bugzilla at stromberg.org>
+            jb2bz.py --  Script to import bugs from JitterBug to Bugzilla.
 
-         syncLDAP.pl --  Script you can run via cron that queries an LDAP
+      merge-users.pl --  Script to merge two user accounts. The activities
+                         from one account are moved to the another. Specify
+                         both accounts on the command line. The new account
+                         must already exist. 
+
+   mysqld-watcher.pl --  This script can be installed as a frequent Cron 
+                         job to clean up stalled/dead queries.
+
+           recode.pl --  Script to convert a database from one encoding 
+                         (or multiple encodings)  to UTF-8.
+
+      sendbugmail.pl --  This script is a drop-in replacement for the
+                         'processmail' script which used to be shipped
+                         with Bugzilla, but was replaced by the
+                         Bugzilla/BugMail.pm Perl module. This script can 
+                         be used if 'processmail' was previously called
+                         from other scripts external to
+                         Bugzilla.  See the comments at the top of
+                         the file for usage information. Contributed
+                         by Nick Barnes of Ravenbrook Limited.
+
+sendunsentbugmail.pl --  Script to find bugs with un-sent mail and to
+                         send all unsent messages.
+
+         syncLDAP.pl --  Script that can be run via Cron that queries an LDAP
                          server for users and e-mail addresses and adds
                          missing users to Bugzilla. Can disable/update 
                          non-existing/changed information. Contributed by
-                         Andreas Höfler <andreas.hoefler at bearingpoint.com>
+                         Andreas Höfler <andreas.hoefler at bearingpoint.com>.
 
-
+        yp_nomail.sh --  Script that can be run via Cron that regularly updates
+                         the nomail file for terminated employees. 

Modified: trunk/web/reactos.org/htdocs/bugzilla/contrib/merge-users.pl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/contrib/merge-users.pl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/contrib/merge-users.pl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/contrib/merge-users.pl Fri Feb 22 18:16:17 2008
@@ -131,12 +131,14 @@
     votes           => ['who'],
     # Tables affecting global behavior / other users.
     components      => ['initialowner', 'initialqacontact'],
+    component_cc    => ['user_id component_id'],
     quips           => ['userid'],
     series          => ['creator'],
     whine_events    => ['owner_userid'],
     watch           => ['watcher watched', 'watched watcher'],
     # Tables affecting the user directly.
     namedqueries    => ['userid name'],
+    namedqueries_link_in_footer => ['user_id namedquery_id'],
     user_group_map  => ['user_id group_id isbless grant_type'],
     email_setting   => ['user_id relationship event'],
     profile_setting => ['user_id setting_name'],

Modified: trunk/web/reactos.org/htdocs/bugzilla/contrib/syncLDAP.pl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/contrib/syncLDAP.pl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/contrib/syncLDAP.pl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/contrib/syncLDAP.pl Fri Feb 22 18:16:17 2008
@@ -276,7 +276,7 @@
         Bugzilla::User->create({
             login_name => $key, 
             realname   => @$value{'realname'},
-            password   => '*'});
+            cryptpassword   => '*'});
       }
       print "done!\n" unless $quiet;
    }

Modified: trunk/web/reactos.org/htdocs/bugzilla/editusers.cgi
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/editusers.cgi?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/editusers.cgi (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/editusers.cgi Fri Feb 22 18:16:17 2008
@@ -585,9 +585,6 @@
     }
 
     # 2) Whines
-    my $sth_whineidFromSchedules = $dbh->prepare(
-           qq{SELECT eventid FROM whine_schedules
-              WHERE mailto = ? AND mailto_type = ?});
     my $sth_whineidFromEvents = $dbh->prepare(
            'SELECT id FROM whine_events WHERE owner_userid = ?');
     my $sth_deleteWhineEvent = $dbh->prepare(
@@ -597,12 +594,8 @@
     my $sth_deleteWhineSchedule = $dbh->prepare(
            'DELETE FROM whine_schedules WHERE eventid = ?');
 
-    $sth_whineidFromSchedules->execute($otherUserID, MAILTO_USER);
-    while ($id = $sth_whineidFromSchedules->fetchrow_array()) {
-        $sth_deleteWhineQuery->execute($id);
-        $sth_deleteWhineSchedule->execute($id);
-        $sth_deleteWhineEvent->execute($id);
-    }
+    $dbh->do('DELETE FROM whine_schedules WHERE mailto = ? AND mailto_type = ?',
+             undef, ($otherUserID, MAILTO_USER));
 
     $sth_whineidFromEvents->execute($otherUserID);
     while ($id = $sth_whineidFromEvents->fetchrow_array()) {

Modified: trunk/web/reactos.org/htdocs/bugzilla/email_in.pl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/email_in.pl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/email_in.pl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/email_in.pl Fri Feb 22 18:16:17 2008
@@ -36,6 +36,7 @@
 use Email::MIME::Attachment::Stripper;
 use Getopt::Long qw(:config bundling);
 use Pod::Usage;
+use Encode qw(encode decode);
 
 use Bugzilla;
 use Bugzilla::Bug qw(ValidateBugID);
@@ -295,9 +296,17 @@
     my $body;
     foreach my $part (@parts) {
         my $ct = $part->content_type || 'text/plain';
+        my $charset = 'iso-8859-1';
+        if ($ct =~ /charset=([^;]+)/) {
+            $charset= $1;
+        }
         debug_print("Part Content-Type: $ct", 2);
+        debug_print("Part Character Encoding: $charset", 2);
         if (!$ct || $ct =~ /^text\/plain/i) {
             $body = $part->body;
+            if (Bugzilla->params->{'utf8'}) {
+                $body = encode('UTF-8', decode($charset, $body));
+            }
             last;
         }
     }
@@ -433,9 +442,24 @@
  be included in the bug description.
 
 The C<@> labels can be any valid field name in Bugzilla that can be
-set on C<enter_bug.cgi>. For the list of field names, see the
-C<fielddefs> table in the database. The above example shows the
-minimum fields you B<must> specify.
+set on C<enter_bug.cgi>. For the list of required field names, see 
+L<Bugzilla::WebService::Bug/Create>. Note, that there is some difference
+in the names of the required input fields between web and email interfaces, 
+as listed below:
+
+=over
+
+=item *
+
+C<platform> in web is C<@rep_platform> in email
+
+=item *
+
+C<severity> in web is C<@bug_severity> in email
+
+=back
+
+For the list of all field names, see the C<fielddefs> table in the database. 
 
 The values for the fields can be split across multiple lines, but
 note that a newline will be parsed as a single space, for the value.

Modified: trunk/web/reactos.org/htdocs/bugzilla/mod_perl.pl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/mod_perl.pl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/mod_perl.pl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/mod_perl.pl Fri Feb 22 18:16:17 2008
@@ -28,7 +28,6 @@
 # startup, so we always specify () after using any module in this
 # file.
 
-use Apache::DBI ();
 use Apache2::ServerUtil;
 use Apache2::SizeLimit;
 use ModPerl::RegistryLoader ();
@@ -71,6 +70,9 @@
 
 # Have ModPerl::RegistryLoader pre-compile all CGI scripts.
 my $rl = new ModPerl::RegistryLoader();
+# If we try to do this in "new" it fails because it looks for a 
+# Bugzilla/ModPerl/ResponseHandler.pm
+$rl->{package} = 'Bugzilla::ModPerl::ResponseHandler';
 # Note that $cgi_path will be wrong if somebody puts the libraries
 # in a different place than the CGIs.
 foreach my $file (glob "$cgi_path/*.cgi") {

Modified: trunk/web/reactos.org/htdocs/bugzilla/post_bug.cgi
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/post_bug.cgi?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/post_bug.cgi (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/post_bug.cgi Fri Feb 22 18:16:17 2008
@@ -127,10 +127,6 @@
 # value (e.g. "---" for custom single select fields).
 my @bug_fields = grep { defined $cgi->param($_->name) } @custom_bug_fields;
 @bug_fields = map { $_->name } @bug_fields;
-
-# Custom tables must be locked (required when validating custom fields).
-my @custom_tables = grep { $_->type == FIELD_TYPE_SINGLE_SELECT } @custom_bug_fields;
- at custom_tables = map { $_->name . ' READ' } @custom_tables;
 
 push(@bug_fields, qw(
     product

Modified: trunk/web/reactos.org/htdocs/bugzilla/query.cgi
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/query.cgi?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/query.cgi (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/query.cgi Fri Feb 22 18:16:17 2008
@@ -111,6 +111,7 @@
 # and ignore any multiple values.
 sub PrefillForm {
     my ($buf) = (@_);
+    my $cgi = Bugzilla->cgi;
     $buf = new Bugzilla::CGI($buf);
     my $foundone = 0;
 
@@ -136,17 +137,22 @@
         $default{$name} = [];
     }
  
+    # we won't prefill the boolean chart data from this query if
+    # there are any being submitted via params
+    my $prefillcharts = (grep(/^field-/, $cgi->param)) ? 0 : 1;
  
     # Iterate over the URL parameters
     foreach my $name ($buf->param()) {
         my @values = $buf->param($name);
 
-        # If the name begins with field, type, or value, then it is part of
-        # the boolean charts. Because these are built different than the rest
-        # of the form, we don't need to save a default value. We do, however,
-        # need to indicate that we found something so the default query isn't
-        # added in if all we have are boolean chart items.
-        if ($name =~ m/^(?:field|type|value)/) {
+        # If the name begins with the string 'field', 'type', 'value', or
+        # 'negate', then it is part of the boolean charts. Because
+        # these are built different than the rest of the form, we need
+        # to store these as parameters. We also need to indicate that
+        # we found something so the default query isn't added in if
+        # all we have are boolean chart items.
+        if ($name =~ m/^(?:field|type|value|negate)/) {
+            $cgi->param(-name => $name, -value => $values[0]) if ($prefillcharts);
             $foundone = 1;
         }
         # If the name ends in a number (which it does for the fields which

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/components/confirm-delete.html.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/components/confirm-delete.html.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/components/confirm-delete.html.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/components/confirm-delete.html.tmpl Fri Feb 22 18:16:17 2008
@@ -74,7 +74,7 @@
 <tr>
   <td valign="top">Product Milestone URL:</td>
   <td valign="top">
-    <a href="[% product.milestone_url FILTER uri %]">
+    <a href="[% product.milestone_url FILTER html %]">
       [% product.milestone_url FILTER html %]
     </a>
   </td>

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/groups/delete.html.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/groups/delete.html.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/groups/delete.html.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/groups/delete.html.tmpl Fri Feb 22 18:16:17 2008
@@ -120,10 +120,12 @@
           indicated problems first before you can proceed.</b></p>
   [% END %]
 
-  <p><input type="submit" id="delete" value="Yes, delete">
-  <input type="hidden" name="action" value="delete">
-  <input type="hidden" name="group" value="[% gid FILTER html %]">
-  <input type="hidden" name="token" value="[% token FILTER html %]">
+  <p>
+    <input type="submit" id="delete" value="Yes, delete">
+    <input type="hidden" name="action" value="delete">
+    <input type="hidden" name="group" value="[% gid FILTER html %]">
+    <input type="hidden" name="token" value="[% token FILTER html %]">
+  </p>
 </form>
 
 Go back to the <a href="editgroups.cgi">group list</a>.

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/params/auth.html.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/params/auth.html.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/params/auth.html.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/params/auth.html.tmpl Fri Feb 22 18:16:17 2008
@@ -69,10 +69,10 @@
                           </dd>
                           <dt>LDAP</dt>
                           <dd>
-                            LDAP authentication using an LDAP server. This method is
-                            experimental; please see the $terms.Bugzilla documentation for more
-                            information. Using this method requires additional parameters
-                            to be set above.
+                            LDAP authentication using an LDAP server.
+                            Please see the $terms.Bugzilla documentation
+                            for more information. Using this method requires
+                            additional parameters to be set above.
                           </dd>
                         </dl>",
 
@@ -121,4 +121,4 @@
                        "to be created. If this parameter is left blank, no users " _
                        "will be permitted to create their own accounts and all accounts " _
                        "will have to be created by an administrator." }
-%]
+%]

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/confirm-delete.html.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/confirm-delete.html.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/confirm-delete.html.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/confirm-delete.html.tmpl Fri Feb 22 18:16:17 2008
@@ -90,7 +90,7 @@
       <td>Milestone URL:</td>
       <td>
         [% IF product.milestone_url %]
-          <a href="[% product.milestone_url FILTER uri %]">
+          <a href="[% product.milestone_url FILTER html %]">
             [%- product.milestone_url FILTER html %]
           </a>
         [% ELSE %]

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/list-classifications.html.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/list-classifications.html.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/list-classifications.html.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/products/list-classifications.html.tmpl Fri Feb 22 18:16:17 2008
@@ -50,14 +50,17 @@
        name => "product_count"
        align => "right"
        heading => "Product Count"
-     },
-     { 
+     }
+   ]
+%]
+
+[% IF user.in_group('editcomponents') %]
+  [% columns.push({
        heading => "Action..."
        content => "Add product"
-       contentlink => add_contentlink
-     },
-   ]
-%]
+       contentlink => add_contentlink })
+  %]
+[% END %]
 
 [% PROCESS admin/table.html.tmpl
      columns = columns

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/users/confirm-delete.html.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/users/confirm-delete.html.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/users/confirm-delete.html.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/admin/users/confirm-delete.html.tmpl Fri Feb 22 18:16:17 2008
@@ -401,32 +401,32 @@
             will cease along with the deletion of the user account.
           </li>
         [% END %]
-        [% IF whine_events || whine_schedules %]
-          <li>
-            [% otheruser.login FILTER html %]
-            [% IF whine_events %]
-              has scheduled
-              [% IF whine_events == 1 %]
-                a whine
-              [% ELSE %]
-                [%+ whine_events %] whines
-              [% END %]
-            [% END %]
-            [% IF whine_schedules %]
-              [%+ 'and' IF whine_events %]
-              is on the receiving end of
-              [% IF whine_schedules == 1 %]
-                a whine
-              [% ELSE %]
-                [%+ whine_schedules %] whines
-              [% END %]
-            [% END %].
-            [% IF whine_events + whine_schedules == 1 %]
+        [% IF whine_events %]
+          <li>
+            [% otheruser.login FILTER html %] has scheduled
+            [% IF whine_events == 1 %]
+              a whine
+            [% ELSE %]
+              [%+ whine_events %] whines
+            [% END %].
+            [% IF whine_events == 1 %]
               This whine
             [% ELSE %]
               These whines
             [% END %]
             will be deleted along with the user account.
+          </li>
+        [% END %]
+        [% IF whine_schedules %]
+          <li>
+            [% otheruser.login FILTER html %] is on the receiving end of
+            [% IF whine_schedules == 1 %]
+              a whine
+            [% ELSE %]
+              [%+ whine_schedules %] whines
+            [% END %].
+            The corresponding schedules will be deleted along with the user account,
+            but the whines themselves will be left unaltered.
           </li>
         [% END %]
       </ul>

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/bug/dependency-tree.html.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/bug/dependency-tree.html.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/bug/dependency-tree.html.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/bug/dependency-tree.html.tmpl Fri Feb 22 18:16:17 2008
@@ -144,10 +144,10 @@
       <span class="summ_text">[%+ bug.short_desc FILTER html %]</span>
       <span class="summ_info">[[% INCLUDE buginfo %]]</span>
     </a>
-    <a href="showdependencytree.cgi?id=[% bugid FILTER uri %]"
+    <a href="showdependencytree.cgi?id=[% bugid FILTER url_quote %]"
        class="tree_link">
       <img src="skins/standard/dependency-tree/tree.png"
-           title="See dependency tree for [% terms.bug %] [%+ bugid FILTER uri %]">
+           title="See dependency tree for [% terms.bug %] [%+ bugid FILTER html %]">
     </a>
   [% END %]
 [% END %]

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.js.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.js.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.js.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.js.tmpl Fri Feb 22 18:16:17 2008
@@ -56,6 +56,14 @@
 // ==========
 
 var severity      = [ [% FOREACH x = severity %]'[% x FILTER js %]', [% END %] ];
+
+
+// Custom Fields
+// =============
+
+[% FOREACH cf = custom_fields %]
+var [% cf.name FILTER js %] = [ [% FOREACH x = cf.legal_values %]'[% x FILTER js %]', [% END %] ];
+[% END %]
 
 
 // Products and Components

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.rdf.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.rdf.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.rdf.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/config.rdf.tmpl Fri Feb 22 18:16:17 2008
@@ -103,17 +103,28 @@
     </Seq>
   </bz:severity>
 
+[% FOREACH cf = custom_fields %]
+  <bz:[% cf.name FILTER html %]>
+    <Seq>
+      [% FOREACH item = cf.legal_values %]
+        <li>[% item FILTER html %]</li>
+      [% END %]
+    </Seq>
+  </bz:[% cf.name FILTER html %]>
+
+[% END %]
+
   <bz:products>
     <Seq>
       [% FOREACH product = products %]
         <li>
-          <bz:product rdf:about="[% Param('urlbase') %]product.cgi?name=[% product.name FILTER uri %]">
+          <bz:product rdf:about="[% Param('urlbase') %]product.cgi?name=[% product.name FILTER url_quote %]">
             <bz:name>[% product.name FILTER html %]</bz:name>
 
             <bz:components>
               <Seq>
                 [% FOREACH component = product.components %]
-                  <li resource="[% Param('urlbase') %]component.cgi?name=[% component.name FILTER uri %]"/>
+                  <li resource="[% Param('urlbase') %]component.cgi?name=[% component.name FILTER url_quote %]"/>
                 [% END %]
               </Seq>
             </bz:components>
@@ -121,7 +132,7 @@
             <bz:versions>
               <Seq>
                 [% FOREACH version = product.versions %]
-                  <li resource="[% Param('urlbase') %]version.cgi?name=[% version.name FILTER uri %]"/>
+                  <li resource="[% Param('urlbase') %]version.cgi?name=[% version.name FILTER url_quote %]"/>
                 [% END %]
               </Seq>
             </bz:versions>
@@ -130,7 +141,7 @@
               <bz:target_milestones>
                 <Seq>
                   [% FOREACH milestone = product.milestones %]
-                    <li resource="[% Param('urlbase') %]milestone.cgi?name=[% milestone.name FILTER uri %]"/>
+                    <li resource="[% Param('urlbase') %]milestone.cgi?name=[% milestone.name FILTER url_quote %]"/>
                   [% END %]
                 </Seq>
               </bz:target_milestones>
@@ -147,7 +158,7 @@
       [% FOREACH product = products %]
         [% FOREACH component = product.components %]
           <li>
-            <bz:component rdf:about="[% Param('urlbase') %]component.cgi?name=[% component.name FILTER uri %]">
+            <bz:component rdf:about="[% Param('urlbase') %]component.cgi?name=[% component.name FILTER url_quote %]">
               <bz:name>[% component.name FILTER html %]</bz:name>
             </bz:component>
           </li>
@@ -161,7 +172,7 @@
       [% FOREACH product = products %]
         [% FOREACH version = product.versions %]
           <li>
-            <bz:version rdf:about="[% Param('urlbase') %]version.cgi?name=[% version.name FILTER uri %]">
+            <bz:version rdf:about="[% Param('urlbase') %]version.cgi?name=[% version.name FILTER url_quote %]">
               <bz:name>[% version.name FILTER html %]</bz:name>
             </bz:version>
           </li>
@@ -176,7 +187,7 @@
         [% FOREACH product = products %]
           [% FOREACH milestone = product.milestones %]
             <li>
-              <bz:target_milestone rdf:about="[% Param('urlbase') %]milestone.cgi?name=[% milestone.name FILTER uri %]">
+              <bz:target_milestone rdf:about="[% Param('urlbase') %]milestone.cgi?name=[% milestone.name FILTER url_quote %]">
                 <bz:name>[% milestone.name FILTER html %]</bz:name>
               </bz:target_milestone>
             </li>
@@ -191,7 +202,7 @@
       [% PROCESS "global/field-descs.none.tmpl" %]
       [% FOREACH item = field %]
         <li>
-          <bz:field rdf:about="[% Param('urlbase') %]field.cgi?name=[% item.name FILTER uri %]">
+          <bz:field rdf:about="[% Param('urlbase') %]field.cgi?name=[% item.name FILTER url_quote %]">
             <bz:name>[% item.name FILTER html %]</bz:name>
             <bz:description>[% (field_descs.${item.name} OR item.description) FILTER html %]</bz:description>
           </bz:field>

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/user-error.html.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/user-error.html.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/user-error.html.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/global/user-error.html.tmpl Fri Feb 22 18:16:17 2008
@@ -1201,7 +1201,7 @@
     create the milestone '[% defaultmilestone FILTER html %]'</a> before
     it can be made the default milestone for product '[% product FILTER html %]'.
 
-  [% ELSIF error == "product_access_denied" %]
+  [% ELSIF error == "product_admin_denied" %]
     [% title = "Product Access Denied" %]
     You are not allowed to edit properties of product '[% product FILTER html %]'.
 

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/list.ics.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/list.ics.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/list.ics.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/list.ics.tmpl Fri Feb 22 18:16:17 2008
@@ -58,11 +58,11 @@
 [% END %]
 
 [% BLOCK ics_uid %]
-  [% "${bug_id}@${base_url}" FILTER uri FILTER ics('UID') %]
+  [% "${bug_id}@${base_url}" FILTER url_quote FILTER ics('UID') %]
 [% END %]
 
 [% BLOCK ics_url %]
-  [% "${base_url}show_bug.cgi?id=${bug_id}" FILTER uri FILTER ics('URL;VALUE=URI') %]
+  [% "${base_url}show_bug.cgi?id=${bug_id}" FILTER url_quote FILTER ics('URL;VALUE=URI') %]
 [% END %]
 
 [% BLOCK ics_dtstart %]

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/quips.html.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/quips.html.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/quips.html.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/list/quips.html.tmpl Fri Feb 22 18:16:17 2008
@@ -120,13 +120,13 @@
               [% "Unknown" IF NOT users.$userid %]
             </td>
             <td>
-              <a href="quips.cgi?action=delete&amp;quipid=[% quipid FILTER uri%]">
+              <a href="quips.cgi?action=delete&amp;quipid=[% quipid FILTER url_quote %]">
                 Delete
               </a>
             </td>
             <td>
-              <input type="checkbox" name="quipid_[% quipid FILTER uri%]"
-                     id="quipid_[% quipid FILTER uri%]"
+              <input type="checkbox" name="quipid_[% quipid FILTER html %]"
+                     id="quipid_[% quipid FILTER html %]"
                      [%- ' checked="checked"' IF quips.$quipid.approved %]>
             </td>
           </tr>

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/quicksearchhack.html.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/quicksearchhack.html.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/quicksearchhack.html.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/quicksearchhack.html.tmpl Fri Feb 22 18:16:17 2008
@@ -264,7 +264,17 @@
   <td><tt>attachmimetype</tt></td>
   <td>Attachment mime-type <i>(&ldquo;attachments.mimetype&rdquo;)</i></td>
 </tr>
-
+<tr>
+  <td>&nbsp;</td>
+  <td>&nbsp;</td>
+  <td><tt>votes</tt></td>
+  <td>&nbsp;</td>
+  <td>
+    Number of votes<br>
+    (votes:<i>N</i> and votes&gt;=<i>N</i> mean "at least N votes",
+    votes&gt;<i>N</i> means "more than N votes")
+  </td>
+</tr>
 </table>
 
 <p>
@@ -301,19 +311,6 @@
   <td><b>:</b><i>area</i></td>
   <td><b>product,component:</b><i>area</i></td>
 </tr>
-<!--
-<tr>
-  <td><tt>:browser</tt></td>
-  <td><i>[% terms.bugs %] in the Browser product</i></td>
-</tr>
- <td><tt>:mail</tt></td>
-  <td><i>[% terms.bugs %] in the MailNews product</td>
-</tr>
-<tr>
-  <td><tt>:xbl</tt></td>
-  <td><i>[% terms.bugs %] in the XBL component</i></td>
-</tr>
-  -->
 <tr>
   <td><i>sev</i></td>
   <td><b>severity:</b><i>sev</i></td>
@@ -342,30 +339,10 @@
   <td><b>@</b><i>assignee</i></td>
   <td><b>assignedto:</b><i>assignee</i></td>
 </tr>
-<!--
-<tr>
-  <td><tt>@nobody</tt></td>
-  <td><i>assigneeless [% terms.bugs %]</i></td>
-</tr>
-<tr>
-  <td><tt>@mozilla.org</tt></td>
-  <td><i>[% terms.bugs %] assigned to mozilla.org members</i></td>
-</tr>
-  -->
 <tr>
   <td><b>!</b><i>keyword</i></td>
   <td><b>keywords:</b><i>keyword</i></td>
 </tr>
-<!--
-<tr>
-  <td><tt>!crash</tt></td>
-  <td><i>crasher [% terms.bugs %]</i></td>
-</tr>
-<tr>
-  <td><tt>!helpwanted</tt></td>
-  <td><i>[% terms.bugs %] waiting for your help</i></td>
-</tr>
-  -->
 </table>
 
 <p>

Modified: trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/release-notes.html.tmpl
URL: http://svn.reactos.org/svn/reactos/trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/release-notes.html.tmpl?rev=32453&r1=32452&r2=32453&view=diff
==============================================================================
--- trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/release-notes.html.tmpl (original)
+++ trunk/web/reactos.org/htdocs/bugzilla/template/en/default/pages/release-notes.html.tmpl Fri Feb 22 18:16:17 2008
@@ -20,7 +20,7 @@
 
 [% PROCESS global/variables.none.tmpl %]
 [% INCLUDE global/header.html.tmpl 
-  title = "$terms.Bugzilla 3.0.2 Release Notes" 
+  title = "$terms.Bugzilla 3.0.3 Release Notes" 
   style_urls = ['skins/standard/release-notes.css'] 
 %]
 
@@ -60,6 +60,42 @@
   most important fixes in each release. If you want a detailed list of
   <em>everything</em> that's changed in each version, you should use our
   <a href="http://www.bugzilla.org/status/changes.html">Change Log Page</a>.</p>
+
+<h3>3.0.3</h3>
+
+<ul>
+  <li>mod_perl no longer compiles [% terms.Bugzilla %]'s code for each Apache
+    process individually. It now compiles code only once and shares it among
+    each Apache process. This greatly improves performance and highly 
+    decreases the memory footprint.
+   (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=398241">[% terms.Bug %] 398241</a>)</li>
+
+  <li>You can now search for '---' (without quotes) in versions and milestones.
+    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=362436">[% terms.Bug %] 362436</a>)</li>
+
+  <li>[% terms.Bugzilla %] should no longer break lines unnecessarily in 
+    email subjects. This was causing trouble with some email clients.
+    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=374424">[% terms.Bug %] 374424</a>)</li>
+
+  <li>If you had selected "I'm added to or removed from this capacity" option
+    for the "CC" role in your email preferences, you wouldn't get mail when
+    more than one person was added to the CC list at once.
+    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=394796">[% terms.Bug %] 394796</a>)</li>
+
+  <li>Deleting a user account no longer deletes whines from another user who
+    has the deleted account as addressee. The schedule is simply removed, 
+    but the whine itself is left intact.
+    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=395924">[% terms.Bug %] 395924</a>)</li>
+
+  <li><kbd>contrib/merge-users.pl</kbd> now correctly merges all required
+    fields when merging two user accounts.
+    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=400160">[% terms.Bug %] 400160</a>)</li>
+
+  <li>[% terms.Bugzilla %] no longer requires Apache::DBI to run under 
+    mod_perl. It caused troubles such as lost connections with the DB and
+    didn't give any important performance gain.
+    (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=408766">[% terms.Bug %] 408766</a>)</li>
+</ul>
 
 <h3>3.0.2</h3>
 
@@ -576,6 +612,10 @@
 
 <h2><a name="v30_security"></a>Security Updates in This Release</h2>
 
+<h3>3.0.3</h3>
+
+<p>No security fixes in this release.</p>
+
 <h3>3.0.2</h3>
 
 <p>[% terms.Bugzilla %] 3.0.1 had an important security fix that is




More information about the Ros-diffs mailing list