diff options
-rw-r--r-- | Bugzilla/Search.pm | 19 | ||||
-rw-r--r-- | bug_form.pl | 3 | ||||
-rw-r--r-- | template/en/default/global/code-error.html.tmpl | 20 |
3 files changed, 26 insertions, 16 deletions
diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm index 88687392f..50b3ad19c 100644 --- a/Bugzilla/Search.pm +++ b/Bugzilla/Search.pm @@ -95,7 +95,7 @@ sub init { my $c = &::trim($F{'votes'}); if ($c ne "") { if ($c !~ /^[0-9]*$/) { - $vars->{'value'} = $c; + $::vars->{'value'} = $c; &::ThrowUserError("illegal_at_least_x_votes"); } push(@specialchart, ["votes", "greaterthan", $c - 1]); @@ -179,7 +179,7 @@ sub init { if (@clist) { push(@specialchart, \@clist); } else { - $vars->{'email'} = $email; + $::vars->{'email'} = $email; &::ThrowUserError("missing_email_type"); } } @@ -189,7 +189,7 @@ sub init { my $c = &::trim($F{'changedin'}); if ($c ne "") { if ($c !~ /^[0-9]*$/) { - $vars->{'value'} = $c; + $::vars->{'value'} = $c; &::ThrowUserError("illegal_changed_in_last_x_days"); } push(@specialchart, ["changedin", @@ -437,7 +437,7 @@ sub init { push(@list, "$table.keywordid = $id"); } else { - $vars->{'keyword'} = $v; + $::vars->{'keyword'} = $v; &::ThrowUserError("unknown_keyword"); } } @@ -776,11 +776,10 @@ sub init { push(@orlist, $term); } else { - my $errstr = - qq|Cannot seem to handle <code>$F{"field$chart-$row-$col"}</code> - and <code>$F{"type$chart-$row-$col"}</code> together|; - $chart < 0 ? die "Internal error: $errstr" - : &::ThrowCodeError($errstr); + # This field and this type don't work together. + $::vars->{'field'} = $F{"field$chart-$row-$col"}; + $::vars->{'type'} = $F{"type$chart-$row-$col"}; + &::ThrowCodeError("field_type_mismatch"); } } if (@orlist) { @@ -842,7 +841,7 @@ sub SqlifyDate { } my $date = str2time($str); if (!defined($date)) { - $vars->{'date'} = $str; + $::vars->{'date'} = $str; ThrowUserError("illegal_date"); } return time2str("%Y-%m-%d %H:%M:%S", $date); diff --git a/bug_form.pl b/bug_form.pl index b04208bdf..c4d623e12 100644 --- a/bug_form.pl +++ b/bug_form.pl @@ -96,7 +96,8 @@ sub show_bug { # The caller is meant to have checked this. Abort here so that # we don't get obscure SQL errors, below if (!MoreSQLData()) { - ThrowCodeError("No data when fetching bug $id"); + $vars->{'bug_id'} = $id; + ThrowCodeError("no_bug_data"); } my $value; diff --git a/template/en/default/global/code-error.html.tmpl b/template/en/default/global/code-error.html.tmpl index d731dbc49..65f8bf672 100644 --- a/template/en/default/global/code-error.html.tmpl +++ b/template/en/default/global/code-error.html.tmpl @@ -42,6 +42,10 @@ to any [% parameters %] which you may have set before calling ThrowCodeError. + [% ELSIF error == "field_type_mismatch" %] + Cannot seem to handle <code>[% field %]</code> + and <code>[% type %]</code> together. + [% ELSIF error == "group_bit_invalid" %] One of the group bits submitted was invalid. @@ -52,6 +56,9 @@ Attempted to add bug to an inactive group, identified by the bit '[% bit FILTER html %]'. + [% ELSIF error == "no_bug_data" %] + No data when fetching bug [% bug_id %]. + [% ELSIF error == "template_error" %] [% template_error_msg %] @@ -62,11 +69,14 @@ Unknown action [% action FILTER html %]! [% ELSE %] - [%# Cope with legacy calling convention, where "error" was the string - # to print. - #%] - - [% error %] + [%# Give sensible error if error functions are used incorrectly. + #%] + You are using Bugzilla's ThrowCodeError() function incorrectly. You + passed in the string '[% message_tag %]'. The correct use is to pass + in a tag, and define that tag in the file code-error.html.tmpl.<br> + <br> + If you are a Bugzilla end-user seeing this message, please save this + page and send it to [% Param('maintainer') %]. [% END %] [% END %] |