]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Make a universal routine to report errors in forms, so that we can
authorterry%mozilla.org <>
Sat, 26 Feb 2000 03:31:49 +0000 (03:31 +0000)
committerterry%mozilla.org <>
Sat, 26 Feb 2000 03:31:49 +0000 (03:31 +0000)
have a universal (and more noticable) way of displaying them.

CGI.pl
buglist.cgi
defparams.pl
post_bug.cgi
process_bug.cgi

diff --git a/CGI.pl b/CGI.pl
index 373572986d66b5f62f224b682b962f510be44b4a..e70fd3f87086e2568bdc136d2e4e857ed4542dab 100644 (file)
--- a/CGI.pl
+++ b/CGI.pl
@@ -799,6 +799,15 @@ sub PutFooter {
 }
 
 
+sub PuntTryAgain ($) {
+    my ($str) = (@_);
+    print PerformSubsts(Param("errorhtml"),
+                        {errormsg => $str});
+    PutFooter();
+    exit;
+}
+
+
 sub CheckIfVotedConfirmed {
     my ($id, $who) = (@_);
     SendSQL("SELECT bugs.votes, bugs.bug_status, products.votestoconfirm, " .
@@ -878,18 +887,6 @@ sub DumpBugActivity {
 }
 
 
-#
-# Prints a warnbanner incl. image with given message
-# 
-sub warnBanner( $ )
-{
-  my ($msg) = (@_);
-  print Param("warnbannerhtml");
-  print $msg;
-  print Param("warnfooterhtml");
-}
-
-
 sub GetCommandMenu {
     my $loggedin = quietly_check_login();
     my $html = qq{<FORM METHOD=GET ACTION="show_bug.cgi">};
index df6d136de388f6299d365cad666a138595955150..cd41ce68213d55a7b3e927c05bb77fec0a03b422 100755 (executable)
@@ -82,10 +82,7 @@ sub SqlifyDate {
     }
     my $date = str2time($str);
     if (!defined $date) {
-        print "\n\n<P>The string '<tt>$str</tt>' is not a legal date.\n";
-        print "<P>Please click the <B>Back</B> button and try again.\n";
-        PutFooter();
-        exit;
+        PuntTryAgain("The string '<tt>$str</tt>' is not a legal date.");
     }
     return time2str("%Y/%m/%d %H:%M:%S", $date);
 }
@@ -117,10 +114,7 @@ sub Error {
     if (!$serverpush) {
         print "Content-type: text/html\n\n";
     }
-    print $str;
-    print "\n<P>Please press <B>Back</B> and try again.\n";
-    PutFooter();
-    exit();
+    PuntTryAgain($str);
 }
     
         
index 5f8d1ccc2857f7915ac0e6797448a50af9dd86e4..14fecf10cd1f8b0f198c7efc3de9c2d4adf17314 100644 (file)
@@ -207,6 +207,13 @@ DefParam("footerhtml",
 %commandmenu%
 </TD></TR></TABLE></TD></TR></TABLE>');
 
+DefParam("errorhtml",
+         "This is what is printed out when a form is improperly filled out.  %errormsg% is replaced by the actual error itself; %<i>anythingelse</i>% gets replaced by the definition of that parameter (as defined on this page).",
+         "l",
+         qq{<TABLE CELLPADDING=20><TR><TD BGCOLOR="#ff0000">
+<FONT SIZE="+2">%errormsg%</FONT></TD></TR></TABLE>
+<P>Please press <B>Back</B> and try again.<P>});
+
 
 
 DefParam("bannerhtml",
@@ -243,17 +250,6 @@ DefParam("shutdownhtml",
          "");
 
 
-DefParam("warnbannerhtml",
-         "HTML to prepend to warning messages.",
-         "l",
-         "<font size=+1>");
-
-DefParam("warnfooterhtml",
-         "HTML to append to warning messages.",
-         "l",
-         "</font>");
-
-
 DefParam("passwordmail",
 q{The email that gets sent to people to tell them their password.  Within
 this text, %mailaddress% gets replaced by the person's email address,
index df5e78e779ae849ad2209280d823e85cb6d4f317..233280f2bc0a50ab335123dd68351bc12ddcb685 100755 (executable)
@@ -33,7 +33,16 @@ sub sillyness {
     my $zz;
     $zz = $::buffer;
     $zz = %::COOKIE;
+    $zz = %::components;
+    $zz = %::versions;
+    $zz = @::legal_bug_status;
+    $zz = @::legal_opsys;
+    $zz = @::legal_platform;
+    $zz = @::legal_priority;
+    $zz = @::legal_product;
+    $zz = @::legal_severity;
 }
+
 confirm_login();
 
 print "Set-Cookie: PLATFORM=$::FORM{'product'} ; path=/ ; expires=Sun, 30-Jun-2029 00:00:00 GMT\n";
@@ -59,18 +68,12 @@ umask 0;
 ConnectToDatabase();
 
 if (!defined $::FORM{'component'} || $::FORM{'component'} eq "") {
-    print "You must choose a component that corresponds to this bug.  If\n";
-    print "necessary, just guess.  But please hit the <B>Back</B> button\n";
-    print "and choose a component.\n";
-    PutFooter();
-    exit 0
+    PuntTryAgain("You must choose a component that corresponds to this bug. " .
+                 "If necessary, just guess.");
 }
 
 if (!defined $::FORM{'short_desc'} || trim($::FORM{'short_desc'}) eq "") {
-    print "You must enter a summary for this bug.  Please hit the\n";
-    print "<B>Back</B> button and try again.\n";
-    PutFooter();
-    exit;
+    PuntTryAgain("You must enter a summary for this bug.");
 }
 
 my $forceAssignedOK = 0;
index 047016b045daa13e5801d7924e4b969f1390161e..ae55fd8da4c218ec48e8e2505cfcb341c7de66d5 100755 (executable)
@@ -179,17 +179,14 @@ sub CheckCanChangeField {
     SendSQL("UNLOCK TABLES");
     $oldvalue = value_quote($oldvalue);
     $newvalue = value_quote($newvalue);
-    print qq{
-<H1>Sorry, not allowed.</H1>
+    print PuntTryAgain(qq{
 Only the owner or submitter of the bug, or a sufficiently
 empowered user, may make that change to the $f field.
 <TABLE>
 <TR><TH ALIGN="right">Old value:</TH><TD>$oldvalue</TD></TR>
 <TR><TH ALIGN="right">New value:</TH><TD>$newvalue</TD></TR>
 </TABLE>
-
-<P>Click <B>Back</B> and try again.
-};
+});
     PutFooter();
     exit();
 }
@@ -310,12 +307,9 @@ sub CheckonComment( $ ) {
     if( $ret ) {
         if (!defined $::FORM{'comment'} || $::FORM{'comment'} =~ /^\s*$/) {
             # No comment - sorry, action not allowed !
-            warnBanner("You have to specify a <b>comment</b> on this change." .
-                       "<p>" .
-                       "Please press <b>Back</b> and give some words " .
-                       "on the reason of the your change.\n" );
-            PutFooter();
-            exit( 0 );
+            PuntTryAgain("You have to specify a <b>comment</b> on this " .
+                         "change.  Please give some words " .
+                         "on the reason for your change.");
         } else {
             $ret = 0;
         }
@@ -420,10 +414,10 @@ SWITCH: for ($::FORM{'knob'}) {
         if ( Param("strictvaluechecks") ) {
           if ( !defined$::FORM{'assigned_to'} ||
                trim($::FORM{'assigned_to'}) eq "") {
-            print "You cannot reassign to a bug to noone.  Unless you intentionally cleared out the \"Reassign bug to\" field, ";
-            print Param("browserbugmessage");
-            PutFooter();
-            exit 0;
+            PuntTryAgain("You cannot reassign to a bug to nobody.  Unless " .
+                         "you intentionally cleared out the " .
+                         "\"Reassign bug to\" field, " .
+                         Param("browserbugmessage"));
           }
         }
         my $newid = DBNameToIdAndCheck($::FORM{'assigned_to'});
@@ -432,16 +426,12 @@ SWITCH: for ($::FORM{'knob'}) {
     };
     /^reassignbycomponent$/  && CheckonComment( "reassignbycomponent" ) && do {
         if ($::FORM{'product'} eq $::dontchange) {
-            print "You must specify a product to help determine the new\n";
-            print "owner of these bugs.\n";
-            PutFooter();
-            exit 0
+            PuntTryAgain("You must specify a product to help determine the " .
+                         "new owner of these bugs.");
         }
         if ($::FORM{'component'} eq $::dontchange) {
-            print "You must specify a component whose owner should get\n";
-            print "assigned these bugs.\n";
-            PutFooter();
-            exit 0
+            PuntTryAgain("You must specify a component whose owner should " .
+                         "get assigned these bugs.");
         }
         ChangeStatus('NEW');
         SendSQL("select initialowner from components where program=" .
@@ -487,16 +477,13 @@ SWITCH: for ($::FORM{'knob'}) {
         SendSQL("SELECT bug_id FROM bugs WHERE bug_id = " . SqlQuote($num));
         $num = FetchOneColumn();
         if (!$num) {
-            print "You must specify a bug number of which this bug is a\n";
-            print "duplicate.  The bug has not been changed.\n";
-            PutFooter();
-            exit;
+            PuntTryAgain("You must specify a bug number of which this bug " .
+                         "is a duplicate.  The bug has not been changed.")
         }
         if (!defined($::FORM{'id'}) || $num == $::FORM{'id'}) {
-            print "Nice try, $::FORM{'who'}.  But it doesn't really make sense to mark a\n";
-            print "bug as a duplicate of itself, does it?\n";
-            PutFooter();
-            exit;
+            PuntTryAgain("Nice try, $::FORM{'who'}.  But it doesn't really ".
+                         "make sense to mark a bug as a duplicate of " .
+                         "itself, does it?");
         }
         AppendComment($num, $::FORM{'who'}, "*** Bug $::FORM{'id'} has been marked as a duplicate of this bug. ***");
         if ( Param('strictvaluechecks') ) {
@@ -518,10 +505,7 @@ SWITCH: for ($::FORM{'knob'}) {
 
 
 if ($#idlist < 0) {
-    print "You apparently didn't choose any bugs to modify.\n";
-    print "<p>Click <b>Back</b> and try again.\n";
-    PutFooter();
-    exit;
+    PuntTryAgain("You apparently didn't choose any bugs to modify.");
 }
 
 
@@ -535,12 +519,10 @@ if ($::FORM{'keywords'}) {
         }
         my $i = $::keywordsbyname{$keyword};
         if (!$i) {
-            print "Unknown keyword named <code>$keyword</code>.\n";
-            print "<P>The legal keyword names are <A HREF=describekeywords.cgi>";
-            print "listed here</A>.\n";
-            print "<P>Please click the <B>Back</B> button and try again.\n";
-            PutFooter();
-            exit;
+            PuntTryAgain("Unknown keyword named <code>$keyword</code>. " .
+                         "<P>The legal keyword names are " .
+                         "<A HREF=describekeywords.cgi>" .
+                         "listed here</A>.");
         }
         if (!$keywordseen{$i}) {
             push(@keywordlist, $i);
@@ -553,10 +535,8 @@ my $keywordaction = $::FORM{'keywordaction'} || "makeexact";
 
 if ($::comma eq "" && 0 == @keywordlist && $keywordaction ne "makeexact") {
     if (!defined $::FORM{'comment'} || $::FORM{'comment'} =~ /^\s*$/) {
-        print "Um, you apparently did not change anything on the selected\n";
-        print "bugs. <p>Click <b>Back</b> and try again.\n";
-        PutFooter();
-        exit;
+        PuntTryAgain("Um, you apparently did not change anything on the " .
+                     "selected bugs.");
     }
 }
 
@@ -679,10 +659,7 @@ The changes made were:
                         SqlQuote($i));
                 my $comp = FetchOneColumn();
                 if ($comp ne $i) {
-                    print "<H1>$i is not a legal bug number</H1>\n";
-                    print "<p>Click <b>Back</b> and try again.\n";
-                    PutFooter();
-                    exit;
+                    PuntTryAgain("$i is not a legal bug number");
                 }
                 if (!exists $seen{$i}) {
                     push(@{$deps{$target}}, $i);
@@ -696,12 +673,10 @@ The changes made were:
                 while (MoreSQLData()) {
                     my $t = FetchOneColumn();
                     if ($t == $id) {
-                        print "<H1>Dependency loop detected!</H1>\n";
-                        print "The change you are making to dependencies\n";
-                        print "has caused a circular dependency chain.\n";
-                        print "<p>Click <b>Back</b> and try again.\n";
-                        PutFooter();
-                        exit;
+                        PuntTryAgain("Dependency loop detected!<P>" .
+                                     "The change you are making to " .
+                                     "dependencies has caused a circular " .
+                                     "dependency chain.");
                     }
                     if (!exists $seen{$t}) {
                         push @stack, $t;