summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/Search.pm37
-rw-r--r--CGI.pl18
-rwxr-xr-xduplicates.cgi23
-rw-r--r--globals.pl6
-rwxr-xr-xprocess_bug.cgi94
-rw-r--r--template/en/default/global/messages.html.tmpl176
6 files changed, 236 insertions, 118 deletions
diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm
index 16dd493d6..88687392f 100644
--- a/Bugzilla/Search.pm
+++ b/Bugzilla/Search.pm
@@ -95,10 +95,8 @@ sub init {
my $c = &::trim($F{'votes'});
if ($c ne "") {
if ($c !~ /^[0-9]*$/) {
- my $htmlc = html_quote($c);
- &::ThrowUserError("The <em>At least ___ votes</em> field must
- be a simple number. You entered
- <tt>$htmlc</tt>, which doesn't cut it.");
+ $vars->{'value'} = $c;
+ &::ThrowUserError("illegal_at_least_x_votes");
}
push(@specialchart, ["votes", "greaterthan", $c - 1]);
}
@@ -181,9 +179,8 @@ sub init {
if (@clist) {
push(@specialchart, \@clist);
} else {
- my $htmlemail = html_quote($email);
- &::ThrowUserError("You must specify one or more fields in which
- to search for <tt>$htmlemail</tt>.");
+ $vars->{'email'} = $email;
+ &::ThrowUserError("missing_email_type");
}
}
@@ -192,10 +189,8 @@ sub init {
my $c = &::trim($F{'changedin'});
if ($c ne "") {
if ($c !~ /^[0-9]*$/) {
- my $htmlc = &::html_quote($c);
- &::ThrowUserError("The <em>changed in last ___ days</em> field
- must be a simple number. You entered
- <tt>$htmlc</tt>, which doesn't cut it.");
+ $vars->{'value'} = $c;
+ &::ThrowUserError("illegal_changed_in_last_x_days");
}
push(@specialchart, ["changedin",
"lessthan", $c + 1]);
@@ -341,14 +336,10 @@ sub init {
$t = "greaterthan";
}
if ($field eq "ispatch" && $v ne "0" && $v ne "1") {
- &::ThrowUserError("The only legal values for the
- <em>Attachment is patch</em> field are
- 0 and 1.");
+ &::ThrowUserError("illegal_attachment_is_patch");
}
if ($field eq "isobsolete" && $v ne "0" && $v ne "1") {
- &::ThrowUserError("The only legal values for the
- <em>Attachment is obsolete</em> field are
- 0 and 1.");
+ &::ThrowUserError("illegal_is_obsolete");
}
$f = "$table.$field";
},
@@ -446,11 +437,8 @@ sub init {
push(@list, "$table.keywordid = $id");
}
else {
- my $htmlv = &::html_quote($v);
- &::ThrowUserError("There is no keyword named<code>$htmlv
- </code>. To search for keywords, consult
- the <a href='describekeywords.cgi'>list
- of legal keywords</a>.");
+ $vars->{'keyword'} = $v;
+ &::ThrowUserError("unknown_keyword");
}
}
my $haveawordterm;
@@ -854,9 +842,8 @@ sub SqlifyDate {
}
my $date = str2time($str);
if (!defined($date)) {
- my $htmlstr = html_quote($str);
- ThrowUserError("The string <tt>$htmlstr</tt> is not a legal date.");
- exit;
+ $vars->{'date'} = $str;
+ ThrowUserError("illegal_date");
}
return time2str("%Y-%m-%d %H:%M:%S", $date);
}
diff --git a/CGI.pl b/CGI.pl
index d16a94883..ec4ddedfb 100644
--- a/CGI.pl
+++ b/CGI.pl
@@ -557,12 +557,8 @@ sub CheckEmailSyntax {
my ($addr) = (@_);
my $match = Param('emailregexp');
if ($addr !~ /$match/ || $addr =~ /[\\\(\)<>&,;:"\[\] \t\r\n]/) {
- ThrowUserError("The e-mail address you entered(<b>" .
- html_quote($addr) . "</b>) didn't pass our syntax checking
- for a legal email address. " . Param('emailregexpdesc') .
- ' It must also not contain any of these special characters:
- <tt>\ ( ) &amp; &lt; &gt; , ; : " [ ]</tt>, or any whitespace.',
- "Check e-mail address syntax");
+ $vars->{'addr'} = $addr;
+ ThrowUserError("illegal_email_address");
}
}
@@ -616,7 +612,7 @@ sub confirm_login {
if ( defined $::FORM{"PleaseMailAPassword"} && !$userid ) {
# Ensure the new login is valid
if(!ValidateNewUser($enteredlogin)) {
- ThrowUserError("That account already exists.");
+ ThrowUserError("account_exists");
}
my $password = InsertNewUser($enteredlogin, "");
@@ -805,10 +801,8 @@ Set-Cookie: Bugzilla_logincookie= ; path=$cookiepath; expires=Sun, 30-Jun-80 00:
Content-type: text/html
";
- ThrowUserError($::disabledreason . "<hr>" .
- "If you believe your account should be restored, please " .
- "send email to " . Param("maintainer") . " explaining why.",
- "Your account has been disabled");
+ $vars->{'disabled_reason'} = $::disabledreason;
+ ThrowUserError("account_disabled");
}
if (!defined $nexturl || $nexturl eq "") {
@@ -897,7 +891,7 @@ sub ThrowCodeError {
# undef as the second parameter and $unlock_tables as the third.
# The second parameter will eventually go away.
sub ThrowUserError {
- ($vars->{'error'}, $vars->{'title'}, my $unlock_tables) = (@_);
+ ($vars->{'error'}, my $unlock_tables) = (@_);
SendSQL("UNLOCK TABLES") if $unlock_tables;
diff --git a/duplicates.cgi b/duplicates.cgi
index 715b4be28..2d46e0d79 100755
--- a/duplicates.cgi
+++ b/duplicates.cgi
@@ -92,21 +92,17 @@ if (!tie(%dbmcount, 'AnyDBM_File', "data/duplicates/dupes$today",
if ($!{ENOENT}) {
if (!tie(%dbmcount, 'AnyDBM_File', "data/duplicates/dupes$yesterday",
O_RDONLY, 0644)) {
+ $vars->{'today'} = $today;
if ($!{ENOENT}) {
- ThrowUserError("There are no duplicate statistics for today " .
- "($today) or yesterday.",
- "Cannot find duplicate statistics");
+ ThrowUserError("no_dupe_stats");
} else {
- ThrowUserError("There are no duplicate statistics for today " .
- "($today), and an error occurred when " .
- "accessing yesterday's dupes file: $!.",
- "Error reading yesterday's dupes file");
+ $vars->{'error_msg'} = $!;
+ ThrowUserError("no_dupe_stats_error_yesterday");
}
}
} else {
- ThrowUserError("An error occurred when accessing today ($today)'s " .
- "dupes file: $!.",
- "Error reading today's dupes file");
+ $vars->{'error_msg'} = $!;
+ ThrowUserError("no_dupe_stats_error_today");
}
}
@@ -133,9 +129,10 @@ if (!tie(%before, 'AnyDBM_File', "data/duplicates/dupes$whenever",
O_RDONLY, 0644)) {
# Ignore file not found errors
if (!$!{ENOENT}) {
- ThrowUserError("Can't open $changedsince days ago ($whenever)'s " .
- "dupes file: $!",
- "Error reading previous dupes file");
+ $vars->{'error_msg'} = $!;
+ $vars->{'changedsince'} = $changedsince;
+ $vars->{'whenever'} = $whenever;
+ ThrowUserError("no_dupe_stats_error_whenever");
}
} else {
# Calculate the deltas
diff --git a/globals.pl b/globals.pl
index 3e119644b..6376b60f4 100644
--- a/globals.pl
+++ b/globals.pl
@@ -946,10 +946,8 @@ sub DBNameToIdAndCheck {
return $result;
}
- $name = html_quote($name);
- ThrowUserError("The name <tt>$name</tt> is not a valid username.
- Either you misspelled it, or the person has not
- registered for a Bugzilla account.");
+ $::vars->{'name'} = $name;
+ ThrowUserError("invalid_username");
}
sub get_product_id {
diff --git a/process_bug.cgi b/process_bug.cgi
index f1b074268..85522b66d 100755
--- a/process_bug.cgi
+++ b/process_bug.cgi
@@ -159,8 +159,7 @@ sub CheckonComment( $ ) {
if( $ret ) {
if (!defined $::FORM{'comment'} || $::FORM{'comment'} =~ /^\s*$/) {
# No comment - sorry, action not allowed !
- ThrowUserError("You have to specify a <b>comment</b> on this change.
- Please give some words on the reason for your change.");
+ ThrowUserError("comment_required");
} else {
$ret = 0;
}
@@ -325,13 +324,12 @@ sub CheckCanChangeField {
$qacontactid eq $whoid) {
return 1;
}
- SendSQL("UNLOCK TABLES");
- $oldvalue = html_quote($oldvalue);
- $newvalue = html_quote($newvalue);
- ThrowUserError("You tried to change the <strong>$f</strong> field
- from <em>$oldvalue</em> to <em>$newvalue</em>,
- but only the owner or submitter of the bug, or a
- sufficiently empowered user, may change that field.");
+
+ # The user doesn't have the necessary permissions to change this field.
+ $vars->{'oldvalue'} = $oldvalue;
+ $vars->{'newvalue'} = $newvalue;
+ $vars->{'field'} = $f;
+ ThrowUserError("illegal_change", "abort");
}
# Confirm that the reporter of the current bug can access the bug we are duping to.
@@ -563,38 +561,30 @@ if (Param("usebugaliases") && defined($::FORM{'alias'})) {
if ($alias ne "") {
# Make sure the alias isn't too long.
if (length($alias) > 20) {
- ThrowUserError("Bug aliases cannot be longer than 20 characters.
- Please choose a shorter alias.");
+ ThrowUserError("alias_too_long");
}
# Make sure the alias is unique.
my $escaped_alias = SqlQuote($alias);
+ $vars->{'alias'} = $alias;
+
SendSQL("SELECT bug_id FROM bugs WHERE alias = $escaped_alias " .
"AND bug_id != $idlist[0]");
my $id = FetchOneColumn();
+
if ($id) {
- my $escaped_alias = html_quote($alias);
- my $bug_link = GetBugLink($id, "Bug $id");
- ThrowUserError("$bug_link has already taken the alias
- <em>$escaped_alias</em>. Please choose another one.");
+ $vars->{'bug_link'} = GetBugLink($id, "Bug $id");
+ ThrowUserError("alias_in_use");
}
# Make sure the alias isn't just a number.
if ($alias =~ /^\d+$/) {
- ThrowUserError("You gave this bug the alias <em>$alias</em>,
- but aliases cannot be merely numbers, since they could
- then be confused with bug IDs. Please choose another
- alias containing at least one letter.");
+ ThrowUserError("alias_is_numeric");
}
# Make sure the alias has no commas or spaces.
if ($alias =~ /[, ]/) {
- my $escaped_alias = html_quote($alias);
- ThrowUserError("The alias you entered, <em>$escaped_alias</em>,
- contains one or more commas or spaces. Aliases cannot contain
- commas or spaces because those characters are used to separate
- aliases from each other in lists. Please choose another alias
- that does not contain commas and spaces.");
+ ThrowUserError("alias_has_comma_or_space");
}
}
@@ -721,11 +711,9 @@ SWITCH: for ($::FORM{'knob'}) {
}
ChangeStatus('NEW');
DoComma();
- if ( !defined$::FORM{'assigned_to'} ||
- trim($::FORM{'assigned_to'}) eq "") {
- ThrowUserError("You cannot reassign to a bug to nobody. Unless you
- intentionally cleared out the \"Reassign bug to\"
- field, " . Param("browserbugmessage"));
+ if (!defined$::FORM{'assigned_to'} ||
+ trim($::FORM{'assigned_to'}) eq "") {
+ ThrowUserError("reassign_to_empty");
}
my $newid = DBNameToIdAndCheck(trim($::FORM{'assigned_to'}));
$::query .= "assigned_to = $newid";
@@ -733,12 +721,10 @@ SWITCH: for ($::FORM{'knob'}) {
};
/^reassignbycomponent$/ && CheckonComment( "reassignbycomponent" ) && do {
if ($::FORM{'product'} eq $::dontchange) {
- ThrowUserError("You must specify a product to help determine
- the new owner of these bugs.");
+ ThrowUserError("need_product");
}
if ($::FORM{'component'} eq $::dontchange) {
- ThrowUserError("You must specify a component whose owner
- should get assigned these bugs.");
+ ThrowUserError("need_component");
}
if ($::FORM{'compconfirm'}) {
DoConfirm();
@@ -786,19 +772,17 @@ SWITCH: for ($::FORM{'knob'}) {
SendSQL("SELECT bug_id FROM bugs WHERE bug_id = " . SqlQuote($num));
$num = FetchOneColumn();
if (!$num) {
- ThrowUserError("You must specify a valid bug number of which this bug
- is a duplicate. The bug has not been changed.")
+ ThrowUserError("dupe_invalid_bug_id")
}
if (!defined($::FORM{'id'}) || $num == $::FORM{'id'}) {
- ThrowUserError("Nice try, $::COOKIE{'Bugzilla_login'}, but it doesn't
- really make sense to mark a bug as a duplicate of itself,
- does it?");
+ ThrowUserError("dupe_of_self_disallowed");
}
my $checkid = trim($::FORM{'id'});
SendSQL("SELECT bug_id FROM bugs where bug_id = " . SqlQuote($checkid));
$checkid = FetchOneColumn();
if (!$checkid) {
- ThrowUserError("The bug id $::FORM{'id'} is invalid.");
+ $vars->{'bug_id'} = $checkid;
+ ThrowUserError("invalid_bug_id");
}
$::FORM{'comment'} .= "\n\n*** This bug has been marked as a duplicate of $num ***";
$duplicate = $num;
@@ -812,7 +796,7 @@ SWITCH: for ($::FORM{'knob'}) {
if ($#idlist < 0) {
- ThrowUserError("You apparently didn't choose any bugs to modify.");
+ ThrowUserError("no_bugs_chosen");
}
@@ -826,9 +810,7 @@ if ($::FORM{'keywords'}) {
}
my $i = GetKeywordIdFromName($keyword);
if (!$i) {
- ThrowUserError("Unknown keyword named <code>" . html_quote($keyword) .
- "</code>. <p>The legal keyword names are
- <a href=\"describekeywords.cgi\">listed here</a></p>.");
+ ThrowUserError("unknown_keyword");
}
if (!$keywordseen{$i}) {
push(@keywordlist, $i);
@@ -844,8 +826,7 @@ if ($::comma eq ""
&& defined $::FORM{'masscc'} && ! $::FORM{'masscc'}
) {
if (!defined $::FORM{'comment'} || $::FORM{'comment'} =~ /^\s*$/) {
- ThrowUserError("Um, you apparently did not change anything
- on the selected bugs.");
+ ThrowUserError("bugs_not_changed");
}
}
@@ -981,11 +962,8 @@ foreach my $id (@idlist) {
SqlQuote($oldhash{'product'}));
if ($value eq FetchOneColumn()) {
SendSQL("UNLOCK TABLES");
- ThrowUserError("You must determine a target milestone for bug $id
- if you are going to accept it. Part of accepting
- a bug is giving an estimate of when it will be fixed.",
- undef,
- "abort");
+ $vars->{'bug_id'} = $id;
+ ThrowUserError("milestone_required", "abort");
}
}
if (defined $::FORM{'delta_ts'} && $::FORM{'delta_ts'} ne $delta_ts) {
@@ -1020,9 +998,7 @@ foreach my $id (@idlist) {
next if $i eq "";
if ($id eq $i) {
- ThrowUserError("You can't make a bug blocked or dependent on itself.",
- undef,
- "abort");
+ ThrowUserError("dependency_loop_single", "abort");
}
if (!exists $seen{$i}) {
push(@{$deptree{$target}}, $i);
@@ -1064,13 +1040,9 @@ foreach my $id (@idlist) {
foreach my $i (@isect) {
$both = $both . GetBugLink($i, "#" . $i) . " ";
}
- ThrowUserError(qq|Dependency loop detected!<p>
- The following bug(s) would appear on both the "depends on"
- and "blocks" parts of the dependency tree if these changes
- are committed: $both<br>This would create a circular
- dependency, which is not allowed.</p>|,
- undef,
- "abort");
+
+ $vars->{'both'} = $both;
+ ThrowUserError("dependency_loop_multi", "abort");
}
}
my $tmp = $me;
diff --git a/template/en/default/global/messages.html.tmpl b/template/en/default/global/messages.html.tmpl
index 02d19969e..559bd5edf 100644
--- a/template/en/default/global/messages.html.tmpl
+++ b/template/en/default/global/messages.html.tmpl
@@ -62,6 +62,122 @@
[% title = "Change columns" %]
Resubmitting your query with new columns...
+ [% ELSIF message_tag == "account_disabled" %]
+ [% title = "Account Disabled" %]
+ [% disabledreason %]
+ <hr>
+ If you believe your account should be restored, please
+ send email to [% Param("maintainer") %] explaining why.
+
+ [% ELSIF message_tag == "account_exists" %]
+ [% title = "Account Already Exists" %]
+ That account already exists.
+
+ [% ELSIF message_tag == "alias_has_comma_or_space" %]
+ [% title = "Invalid Characters In Alias" %]
+ The alias you entered, <em>[% alias FILTER html %]</em>,
+ contains one or more commas or spaces. Aliases cannot contain
+ commas or spaces because those characters are used to separate
+ aliases from each other in lists. Please choose another alias
+ that does not contain commas and spaces.
+
+ [% ELSIF message_tag == "alias_in_use" %]
+ [% title = "Alias In Use" %]
+ [% bug_link %] has already taken the alias
+ <em>[% alias FILTER html %]</em>. Please choose another one.
+
+ [% ELSIF message_tag == "alias_is_numeric" %]
+ [% title = "Alias Is Numeric" %]
+ You tried to give this bug the alias <em>[% alias FILTER html %]</em>,
+ but aliases cannot be merely numbers, since they could
+ then be confused with bug IDs. Please choose another
+ alias containing at least one letter.
+
+ [% ELSIF message_tag == "alias_too_long" %]
+ [% title = "Alias Too Long" %]
+ Bug aliases cannot be longer than 20 characters.
+ Please choose a shorter alias.
+
+ [% ELSIF message_tag == "bugs_not_changed" %]
+ [% title = "Bugs Not Changed" %]
+ Um, you apparently did not change anything on the selected bugs.
+
+ [% ELSIF message_tag == "comment_required" %]
+ [% title = "Comment Required" %]
+ You have to specify a <b>comment</b> on this change.
+ Please give some words on the reason for your change.
+
+ [% ELSIF message_tag == "dependency_loop_multi" %]
+ [% title = "Dependency Loop Detected" %]
+ The following bug(s) would appear on both the "depends on"
+ and "blocks" parts of the dependency tree if these changes
+ are committed: [% both %]. This would create a circular
+ dependency, which is not allowed.
+
+ [% ELSIF message_tag == "dependency_loop_single" %]
+ [% title = "Dependency Loop Detected" %]
+ You can't make a bug blocked or dependent on itself.
+
+ [% ELSIF message_tag == "dupe_invalid_bug_id" %]
+ [% title = "Valid Bug Number Required" %]
+ You must specify a valid bug number of which this bug
+ is a duplicate. The bug has not been changed.
+
+ [% ELSIF message_tag == "dupe_of_self_disallowed" %]
+ [% title = "Nice Try..." %]
+ Nice try, [% user.login FILTER html %], but it doesn't
+ really make sense to mark a bug as a duplicate of itself,
+ does it?
+
+ [% ELSIF message_tag == "illegal_at_least_x_votes" %]
+ [% title = "Your Query Makes No Sense" %]
+ The <em>At least ___ votes</em> field must be a simple number.
+ You entered <tt>[% value FILTER html %]</tt>, which isn't.
+
+ [% ELSIF message_tag == "illegal_attachment_is_patch" %]
+ [% title = "Your Query Makes No Sense" %]
+ The only legal values for the <em>Attachment is patch</em> field are
+ 0 and 1.
+
+ [% ELSIF message_tag == "illegal_change" %]
+ You tried to change the <strong>[% field %]</strong> field
+ from <em>[% oldvalue FILTER html %]</em> to
+ <em>[% newvalue FILTER html %]</em>,
+ but only the owner or submitter of the bug, or a
+ sufficiently empowered user, may change that field.
+
+ [% ELSIF message_tag == "illegal_changed_in_last_x_days" %]
+ [% title = "Your Query Makes No Sense" %]
+ The <em>Changed in last ___ days</em> field must be a simple number.
+ You entered <tt>[% value FILTER html %]</tt>, which isn't.
+
+ [% ELSIF message_tag == "illegal_date" %]
+ [% title = "Your Query Makes No Sense" %]
+ '<tt>[% date %]</tt>' is not a legal date.
+
+ [% ELSIF message_tag == "illegal_is_obsolete" %]
+ [% title = "Your Query Makes No Sense" %]
+ The only legal values for the <em>Attachment is obsolete</em> field are
+ 0 and 1.
+
+ [% ELSIF message_tag == "invalid_bug_id" %]
+ [% title = "Invalid Bug ID" %]
+ The bug id [% bug_id FILTER html %] is invalid.
+
+ [% ELSIF message_tag == "invalid_email_address" %]
+ [% title = "Invalid Email Address" %]
+ The e-mail address you entered(<b>[% addr FILTER html %]</b>)
+ didn't pass our syntax checking for a legal email address.
+ [% Param('emailregexpdesc') %]
+ It must also not contain any of these special characters:
+ <tt>\ ( ) &amp; &lt; &gt; , ; : &quot; [ ]</tt>, or any whitespace.
+
+ [% ELSIF message_tag == "invalid_username" %]
+ [% title = "Invalid Username" %]
+ The name <tt>[% name FILTER html %]</tt> is not a valid username.
+ Either you misspelled it, or the person has not
+ registered for a Bugzilla account.
+
[% ELSIF message_tag == "logged_out" %]
[% title = "Logged Out" %]
[% url = "query.cgi?GoAheadAndLogIn=1" %]
@@ -78,6 +194,45 @@
[% title = "Page not found" %]
The page you requested cannot be found.
+ [% ELSIF message_tag == "milestone_required" %]
+ [% title = "Milestone Required" %]
+ You must determine a target milestone for bug [% bug_id %]
+ if you are going to accept it. Part of accepting
+ a bug is giving an estimate of when it will be fixed.
+
+ [% ELSIF message_tag == "missing_email_type" %]
+ [% title = "Your Query Makes No Sense" %]
+ You must specify one or more fields in which to search for
+ <tt>[% email %]</tt>.
+
+ [% ELSIF message_tag == "need_component" %]
+ [% title = "Component Required" %]
+ You must specify a component to help determine the new owner of these bugs.
+ [% ELSIF message_tag == "need_product" %]
+ [% title = "Product Required" %]
+ You must specify a product to help determine the new owner of these bugs.
+ [% ELSIF message_tag == "no_bugs_chosen" %]
+ [% title = "No Bugs Chosen" %]
+ You apparently didn't choose any bugs to modify.
+
+ [% ELSIF message_tag == "no_dupe_stats" %]
+ [% title = "Cannot Find Duplicate Statistics" %]
+ There are no duplicate statistics for today ([% today %]) or yesterday.
+
+ [% ELSIF message_tag == "no_dupe_stats_error_today" %]
+ [% title = "Error Reading Today's Dupes File" %]
+ An error occurred opening today's dupes file: [% error_msg FILTER html %].
+
+ [% ELSIF message_tag == "no_dupe_stats_error_whenever" %]
+ [% title = "Error Reading Previous Dupes File" %]
+ An error occurred opening $changedsince days ago ($whenever)'s dupes file:
+ [% error_msg FILTER html %].
+
+ [% ELSIF message_tag == "no_dupe_stats_error_yesterday" %]
+ [% title = "Error Reading Yesterday's Dupes File" %]
+ There are no duplicate statistics for today ([% today %]), and an error
+ occurred opening yesterday's dupes file: [% error_msg FILTER html %].
+
[% ELSIF message_tag == "password_changed" %]
[% title = "Password Changed" %]
Your password has been changed.
@@ -91,11 +246,26 @@
A token for changing your password has been emailed to you.
Follow the instructions in that email to change your password.
+ [% ELSIF message_tag == "reassign_to_empty" %]
+ [% title = "Illegal Reassignment" %]
+ You cannot reassign to a bug to nobody. Unless you
+ intentionally cleared out the "Reassign bug to"
+ field, [% Param("browserbugmessage") %]
+
+ [% ELSIF message_tag == "unknown_keyword" %]
+ [% title = "Unknown Keyword" %]
+ <code>[% keyword FILTER html %]</code> is not a known keyword.
+ The legal keyword names are <a href="describekeywords.cgi">listed here</a>.
+
[% ELSE %]
- [%# Cope with legacy calling convention, where "message" was the string
- # to print.
+ [%# Give sensible error if error functions are used incorrectly.
#%]
- [% message_tag %]
+ You are using Bugzilla's error-reporting functions incorrectly. You
+ passed in the string '[% message_tag %]'. The correct use is to pass
+ in a tag, and define that tag in the file messages.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 %]