summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/Search.pm19
-rw-r--r--bug_form.pl3
-rw-r--r--template/en/default/global/code-error.html.tmpl20
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 %]