From 24f062186a9b6dcdcefa79c12ae82b95243c7e41 Mon Sep 17 00:00:00 2001 From: "gerv%gerv.net" <> Date: Thu, 15 Aug 2002 13:43:44 +0000 Subject: Bug 162066 - Fix callers of ThrowCodeError to use messages in code-error.html.tmpl. Patch by gerv; r=bbaetz. --- CGI.pl | 14 ++++++++------ post_bug.cgi | 7 +++---- process_bug.cgi | 6 +++--- template/en/default/global/code-error.html.tmpl | 18 +++++++++++++++--- 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/CGI.pl b/CGI.pl index de2d38085..d16a94883 100644 --- a/CGI.pl +++ b/CGI.pl @@ -218,11 +218,13 @@ sub CheckFormField (\%$;\@) { SendSQL("SELECT description FROM fielddefs WHERE name=" . SqlQuote($fieldname)); my $result = FetchOneColumn(); if ($result) { - ThrowCodeError("A legal $result was not set.", undef, "abort"); + $vars->{'field'} = $result; } else { - ThrowCodeError("A legal $fieldname was not set.", undef, "abort"); + $vars->{'field'} = $fieldname; } + + ThrowCodeError("illegal_field", "abort"); } } @@ -233,9 +235,9 @@ sub CheckFormFieldDefined (\%$) { ) = @_; if (!defined $formRef->{$fieldname}) { - ThrowCodeError("$fieldname was not defined; " . - Param("browserbugmessage")); - } + $vars->{'field'} = $fieldname; + ThrowCodeError("undefined_field"); + } } sub BugAliasToID { @@ -876,7 +878,7 @@ sub DisplayError { # For "this shouldn't happen"-type places in the code. # $vars->{'variables'} is a reference to a hash of useful debugging info. sub ThrowCodeError { - ($vars->{'error'}, $vars->{'variables'}, my $unlock_tables) = (@_); + ($vars->{'error'}, my $unlock_tables, $vars->{'variables'}) = (@_); SendSQL("UNLOCK TABLES") if $unlock_tables; diff --git a/post_bug.cgi b/post_bug.cgi index 2b4859ccd..9d3c0cca9 100755 --- a/post_bug.cgi +++ b/post_bug.cgi @@ -251,15 +251,14 @@ foreach my $b (grep(/^bit-\d*$/, keys %::FORM)) { if ($::FORM{$b}) { my $v = substr($b, 4); $v =~ /^(\d+)$/ - || ThrowCodeError("One of the group bits submitted was invalid.", - undef, "abort"); + || ThrowCodeError("group_bit_invalid", "abort"); if (!GroupIsActive($v)) { # Prevent the user from adding the bug to an inactive group. # Should only happen if there is a bug in Bugzilla or the user # hacked the "enter bug" form since otherwise the UI # for adding the bug to the group won't appear on that form. - ThrowCodeError("Attempted to add bug to an inactive group, " . - "identified by the bit '$v'.", undef, "abort"); + $vars->{'bit'} = $v; + ThrowCodeError("inactive_group", "abort"); } $sql .= " + $v"; # Carefully written so that the math is # done by MySQL, which can handle 64-bit math, diff --git a/process_bug.cgi b/process_bug.cgi index c4a9af033..f1b074268 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -805,9 +805,9 @@ SWITCH: for ($::FORM{'knob'}) { last SWITCH; }; - # default - my $escaped_knob = html_quote($::FORM{'knob'}); - ThrowCodeError("Unknown action $escaped_knob!\n"); + + $vars->{'action'} = $::FORM{'knob'}; + ThrowCodeError("unknown_action"); } diff --git a/template/en/default/global/code-error.html.tmpl b/template/en/default/global/code-error.html.tmpl index 64bf5064e..d731dbc49 100644 --- a/template/en/default/global/code-error.html.tmpl +++ b/template/en/default/global/code-error.html.tmpl @@ -42,13 +42,25 @@ to any [% parameters %] which you may have set before calling ThrowCodeError. - [% ELSIF error == "another_error_tag" %] - This is another sample error, without a special title. This - should be the usual usage for this file. This sample can be removed. + [% ELSIF error == "group_bit_invalid" %] + One of the group bits submitted was invalid. + [% ELSIF error == "illegal_field" %] + A legal [% field FILTER html %] was not set. + + [% ELSIF error == "inactive_group" %] + Attempted to add bug to an inactive group, identified by the bit + '[% bit FILTER html %]'. + [% ELSIF error == "template_error" %] [% template_error_msg %] + [% ELSIF error == "undefined_field" %] + [% field FILTER html %] was not defined; [% Param('browserbugmessage') %] + + [% ELSIF error == "unknown_action" %] + Unknown action [% action FILTER html %]! + [% ELSE %] [%# Cope with legacy calling convention, where "error" was the string # to print. -- cgit v1.2.3-24-g4f1b