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/Bug... ============================================================================== --- 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/Bug... ============================================================================== --- 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/Bug... ============================================================================== --- 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/Bug... ============================================================================== --- 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/Bug... ============================================================================== --- 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/Bug... ============================================================================== --- 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/Bug... ============================================================================== --- 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/Bug... ============================================================================== --- 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/Bug... ============================================================================== --- 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/Bug... ============================================================================== --- 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/Bug... ============================================================================== --- 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/QUI... ============================================================================== --- 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/UPG... ============================================================================== --- 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/bug... ============================================================================== --- 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/con... ============================================================================== --- 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/con... ============================================================================== --- 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@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@platte.com - - yp_nomail.sh -- Script you can run via cron that regularly updates - the nomail file for terminated employees + Tom Schutter tom@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@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@bearingpoint.com + Andreas Höfler andreas.hoefler@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/con... ============================================================================== --- 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/con... ============================================================================== --- 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/edi... ============================================================================== --- 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/ema... ============================================================================== --- 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 +LBugzilla::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... ============================================================================== --- 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/pos... ============================================================================== --- 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; -@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/que... ============================================================================== --- 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/tem... ============================================================================== --- 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/tem... ============================================================================== --- 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/tem... ============================================================================== --- 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/tem... ============================================================================== --- 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/tem... ============================================================================== --- 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/tem... ============================================================================== --- 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/tem... ============================================================================== --- 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/tem... ============================================================================== --- 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/tem... ============================================================================== --- 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/tem... ============================================================================== --- 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/tem... ============================================================================== --- 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/tem... ============================================================================== --- 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&quipid=[% quipid FILTER uri%]"> + <a href="quips.cgi?action=delete&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/tem... ============================================================================== --- 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>(“attachments.mimetype”)</i></td> </tr> - +<tr> + <td> </td> + <td> </td> + <td><tt>votes</tt></td> + <td> </td> + <td> + Number of votes<br> + (votes:<i>N</i> and votes>=<i>N</i> mean "at least N votes", + votes><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/tem... ============================================================================== --- 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