]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 163114 - Templatise all calls to DisplayError. First patch - attachment.cgi....
authorgerv%gerv.net <>
Sat, 21 Sep 2002 05:26:11 +0000 (05:26 +0000)
committergerv%gerv.net <>
Sat, 21 Sep 2002 05:26:11 +0000 (05:26 +0000)
attachment.cgi
template/en/default/global/code-error.html.tmpl
template/en/default/global/user-error.html.tmpl

index 45538ae23552b3428f2e1f5d3dc6a8d79be347bc..fcbe86a78aa3643a5381b844efdc5776842cdc69 100755 (executable)
@@ -114,7 +114,7 @@ elsif ($action eq "update")
 }
 else 
 { 
-  DisplayError("I could not figure out what you wanted to do.")
+  ThrowCodeError("unknown_action");
 }
 
 exit;
@@ -128,15 +128,15 @@ sub validateID
     # Validate the value of the "id" form field, which must contain an
     # integer that is the ID of an existing attachment.
 
-    detaint_natural($::FORM{'id'})
-      || DisplayError("You did not enter a valid attachment number.") 
-      && exit;
+    $vars->{'attach_id'} = $::FORM{'id'};
+    
+    detaint_natural($::FORM{'id'}) 
+     || ThrowUserError("invalid_attach_id");
   
     # Make sure the attachment exists in the database.
     SendSQL("SELECT bug_id, isprivate FROM attachments WHERE attach_id = $::FORM{'id'}");
     MoreSQLData()
-      || DisplayError("Attachment #$::FORM{'id'} does not exist.") 
-      && exit;
+      || ThrowUserError("invalid_attach_id");
 
     # Make sure the user is authorized to access this attachment's bug.
     my ($bugid, $isprivate) = FetchSQLData();
@@ -164,15 +164,13 @@ sub validateCanEdit
             "attach_id = $attach_id AND submitter_id = $::userid");
 
     FetchSQLData()
-      || DisplayError("You are not authorised to edit attachment #$attach_id")
-      && exit;
+      || ThrowUserError("illegal_attachment_edit");
 }
 
 sub validateDescription
 {
   $::FORM{'description'}
-    || DisplayError("You must enter a description for the attachment.")
-      && exit;
+    || ThrowUserError("missing_attachment_description");
 }
 
 sub validateIsPatch
@@ -190,10 +188,7 @@ sub validateContentType
 {
   if (!$::FORM{'contenttypemethod'})
   {
-    DisplayError("You must choose a method for determining the content type,
-      either <em>auto-detect</em>, <em>select from list</em>, or <em>enter 
-      manually</em>.");
-    exit;
+    ThrowUserError("missing_content_type_method");
   }
   elsif ($::FORM{'contenttypemethod'} eq 'autodetect')
   {
@@ -201,10 +196,7 @@ sub validateContentType
     # specified in the HTTP request headers.
     if ( !$::FILE{'data'}->{'contenttype'} )
     {
-      DisplayError("You asked Bugzilla to auto-detect the content type, but
-        your browser did not specify a content type when uploading the file, 
-        so you must enter a content type manually.");
-      exit;
+      ThrowUserError("missing_content_type");
     }
     $::FORM{'contenttype'} = $::FILE{'data'}->{'contenttype'};
   }
@@ -220,22 +212,14 @@ sub validateContentType
   }
   else
   {
-    my $htmlcontenttypemethod = html_quote($::FORM{'contenttypemethod'});
-    DisplayError("Your form submission got corrupted somehow.  The <em>content
-      method</em> field, which specifies how the content type gets determined,
-      should have been either <em>autodetect</em>, <em>list</em>, 
-      or <em>manual</em>, but was instead <em>$htmlcontenttypemethod</em>.");
-    exit;
+    $vars->{'contenttypemethod'} = $::FORM{'contenttypemethod'};
+    ThrowCodeError("illegal_content_type_method");
   }
 
   if ( $::FORM{'contenttype'} !~ /^(application|audio|image|message|model|multipart|text|video)\/.+$/ )
   {
-    my $htmlcontenttype = html_quote($::FORM{'contenttype'});
-    DisplayError("The content type <em>$htmlcontenttype</em> is invalid.
-      Valid types must be of the form <em>foo/bar</em> where <em>foo</em> 
-      is either <em>application, audio, image, message, model, multipart, 
-      text,</em> or <em>video</em>.");
-    exit;
+    $vars->{'contenttype'} = $::FORM{'contenttype'};
+    ThrowUserError("invalid_content_type");
   }
 }
 
@@ -271,9 +255,8 @@ sub validateStatuses
   foreach my $status (@{$::MFORM{'status'}})
   {
     grep($_ == $status, @statusdefs)
-      || DisplayError("One of the statuses you entered is not a valid status
-                       for this attachment.")
-        && exit;
+      || ThrowUserError("invalid_attach_status");
+      
     # We have tested that the status is valid, so it can be detainted
     detaint_natural($status);
   }
@@ -282,8 +265,7 @@ sub validateStatuses
 sub validateData
 {
   $::FORM{'data'}
-    || DisplayError("The file you are trying to attach is empty!")
-      && exit;
+    || ThrowUserError("zero_length_file");
 
   my $len = length($::FORM{'data'});
 
@@ -294,27 +276,18 @@ sub validateData
   # the "maxattachmentsize" parameter.
   if ( $::FORM{'ispatch'} && $maxpatchsize && $len > $maxpatchsize*1024 )
   {
-    my $lenkb = sprintf("%.0f", $len/1024);
-    DisplayError("The file you are trying to attach is ${lenkb} kilobytes (KB) in size.  
-                  Patches cannot be more than ${maxpatchsize}KB in size.
-                  Try breaking your patch into several pieces.");
-    exit;
+    $vars->{'filesize'} = sprintf("%.0f", $len/1024);
+    ThrowUserError("patch_too_large");
   } elsif ( !$::FORM{'ispatch'} && $maxattachmentsize && $len > $maxattachmentsize*1024 ) {
-    my $lenkb = sprintf("%.0f", $len/1024);
-    DisplayError("The file you are trying to attach is ${lenkb} kilobytes (KB) in size.  
-                  Non-patch attachments cannot be more than ${maxattachmentsize}KB.
-                  If your attachment is an image, try converting it to a compressable
-                  format like JPG or PNG, or put it elsewhere on the web and
-                  link to it from the bug's URL field or in a comment on the bug.");
-    exit;
+    $vars->{'filesize'} = sprintf("%.0f", $len/1024);
+    ThrowUserError("file_too_large");
   }
 }
 
 sub validateFilename
 {
   defined $::FILE{'data'}
-    || DisplayError("You did not specify a file to attach.")
-      && exit;
+    || ThrowUserError("file_not_specified");
 }
 
 sub validateObsolete
@@ -322,35 +295,32 @@ sub validateObsolete
   # Make sure the attachment id is valid and the user has permissions to view
   # the bug to which it is attached.
   foreach my $attachid (@{$::MFORM{'obsolete'}}) {
+    $vars->{'attach_id'} = $attachid;
+    
     detaint_natural($attachid)
-      || DisplayError("The attachment number of one of the attachments 
-           you wanted to obsolete is invalid.") 
-        && exit;
+      || ThrowCodeError("invalid_attach_id_to_obsolete");
   
     SendSQL("SELECT bug_id, isobsolete, description 
              FROM attachments WHERE attach_id = $attachid");
 
     # Make sure the attachment exists in the database.
     MoreSQLData()
-      || DisplayError("Attachment #$attachid does not exist.") 
-        && exit;
+      || ThrowUserError("invalid_attach_id");
 
     my ($bugid, $isobsolete, $description) = FetchSQLData();
 
+    $vars->{'description'} = $description;
+    
     if ($bugid != $::FORM{'bugid'})
     {
-      $description = html_quote($description);
-      DisplayError("Attachment #$attachid ($description) is attached 
-        to bug #$bugid, but you tried to flag it as obsolete while
-        creating a new attachment to bug #$::FORM{'bugid'}.");
-      exit;
+      $vars->{'my_bug_id'} = $::FORM{'bugid'};
+      $vars->{'attach_bug_id'} = $bugid;
+      ThrowCodeError("mismatched_bug_ids_on_obsolete");
     }
 
     if ( $isobsolete )
     {
-      $description = html_quote($description);
-      DisplayError("Attachment #$attachid ($description) is already obsolete.");
-      exit;
+      ThrowCodeError("attachment_already_obsolete");
     }
 
     # Check that the user can modify this attachment
@@ -632,10 +602,13 @@ sub update
 
   # Get the bug ID for the bug to which this attachment is attached.
   SendSQL("SELECT bug_id FROM attachments WHERE attach_id = $::FORM{'id'}");
-  my $bugid = FetchSQLData() 
-    || DisplayError("Cannot figure out bug number.")
-    && exit;
-
+  my $bugid = FetchSQLData();
+  unless ($bugid) 
+  {
+    $vars->{'bug_id'} = $bugid;
+    ThrowUserError("invalid_bug_id");
+  }
+  
   # Lock database tables in preparation for updating the attachment.
   SendSQL("LOCK TABLES attachments WRITE , attachstatuses WRITE , 
            attachstatusdefs READ , fielddefs READ , bugs_activity WRITE");
index a74d014cdf52d057078ce5fab258594e8111d4bd..55fac2acaf43ef7e0c1804d4310f2125f1d487c2 100644 (file)
     to any [% parameters %] which you may have set before calling
     ThrowCodeError.
 
+  [% ELSIF error == "attachment_already_obsolete" %]
+    Attachment #[% attachid FILTER html %] ([% description FILTER html %]) 
+    is already obsolete.
+    
   [% 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.
 
+  [% ELSIF error == "illegal_content_type_method" %]
+    Your form submission got corrupted somehow.  The <em>content
+    method</em> field, which specifies how the content type gets determined,
+    should have been either <em>autodetect</em>, <em>list</em>, 
+    or <em>manual</em>, but was instead 
+    <em>[% contenttypemethod FILTER html %]</em>.
+        
   [% ELSIF error == "illegal_field" %]
     A legal [% field FILTER html %] was not set.
     
     Attempted to add bug to an inactive group, identified by the bit 
     '[% bit FILTER html %]'.
     
+  [% ELSIF error == "invalid_attach_id_to_obsolete" %]
+     The attachment number of one of the attachments you wanted to obsolete,
+     [% attach_id FILTER html %], is invalid.
+          
+  [% ELSIF error == "mismatched_bug_ids_on_obsolete" %]
+    Attachment [% attach_id FILTER html %] ([% description FILTER html %]) 
+    is attached to bug [% attach_bug_id FILTER html %], but you tried to 
+    flag it as obsolete while creating a new attachment to bug 
+    [% my_bug_id FILTER html %].
+        
   [% ELSIF error == "no_bug_data" %]
     No data when fetching bug [% bug_id %].
     
index 6c0b370217cbc6b956172f8e4ea3e551f2233f0e..c6f970df36e7d21430450b829f079024f744964d 100644 (file)
     really make sense to mark a bug as a duplicate of itself, 
     does it?  
     
+  [% ELSIF error == "file_not_specified" %]
+    [% title = "No File Specified" %]
+    You did not specify a file to attach.
+    
+  [% ELSIF error == "file_too_large" %]
+    [% title = "File Too Large" %]
+    The file you are trying to attach is [% filesize %] kilobytes (KB) in size.
+    Non-patch attachments cannot be more than [% Param('maxattachmentsize') %]
+    KB.
+    If your attachment is an image, try converting it to a compressable
+    format like JPG or PNG, or put it elsewhere on the web and
+    link to it from the bug's URL field or in a comment on the bug.
+      
   [% ELSIF error == "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 error == "illegal_attachment_edit" %]
+    [% title = "Unauthorised Action" %]
+     You are not authorised to edit attachment [% attach_id %].
+         
   [% ELSIF error == "illegal_attachment_is_patch" %]
     [% title = "Your Query Makes No Sense" %]
      The only legal values for the <em>Attachment is patch</em> field are
      The only legal values for the <em>Attachment is obsolete</em> field are
      0 and 1.
          
+  [% ELSIF error == "invalid_attach_id" %]
+    [% title = "Invalid Attachment ID" %]
+    The attachment id [% attach_id FILTER html %] is invalid.
+
+  [% ELSIF error == "invalid_attach_status" %]
+    [% title = "Invalid Attachment Status" %]
+    One of the statuses you entered is not a valid status for this attachment.
+    
+  [% ELSIF error == "invalid_content_type" %]
+    [% title = "Invalid Content-Type" %]
+    The content type <em>[% contenttype FILTER html %]</em> is invalid.
+    Valid types must be of the form <em>foo/bar</em> where <em>foo</em> 
+    is either <em>application, audio, image, message, model, multipart, 
+    text,</em> or <em>video</em>.
+    
   [% ELSIF error == "invalid_bug_id" %]
     [% title = "Invalid Bug ID" %]
     The bug id [% bug_id FILTER html %] is invalid.
     if you are going to accept it.  Part of accepting 
     a bug is giving an estimate of when it will be fixed.
 
+  [% ELSIF error == "missing_attachment_description" %]
+    [% title = "Missing Attachment Description" %]
+    You must enter a description for the attachment.
+    
+  [% ELSIF error == "missing_content_type" %]
+    [% title = "Missing Content-Type" %]
+     You asked Bugzilla to auto-detect the content type, but
+     your browser did not specify a content type when uploading the file, 
+     so you must enter a content type manually.
+                
+  [% ELSIF error == "missing_content_type_method" %]
+    [% title = "Missing Content-Type Determination Method" %]
+    You must choose a method for determining the content type,
+    either <em>auto-detect</em>, <em>select from list</em>, or <em>enter 
+    manually</em>.
+        
   [% ELSIF error == "missing_email_type" %]
     [% title = "Your Query Makes No Sense" %]
     You must specify one or more fields in which to search for
     [% title = "No Page Specified" %]
     You did not specify the id of a page to display.
 
+  [% ELSIF error == "patch_too_large" %]
+    [% title = "File Too Large" %]
+    The file you are trying to attach is [% filesize %] kilobytes (KB) in size.
+    Patches cannot be more than [% Param('maxpatchsize') %] KB in size.
+    Try breaking your patch into several pieces.  
+
   [% ELSIF error == "reassign_to_empty" %]
     [% title = "Illegal Reassignment" %]
     You cannot reassign to a bug to nobody. Unless you
     [% title = "Unknown Tab" %]
     <code>[% current_tab_name FILTER html %]</code> is not a legal tab name.    
     
+  [% ELSIF error == "zero_length_file" %]
+    [% title = "File Is Empty" %]
+    The file you are trying to attach is empty!    
+    
   [% ELSE %]
     [%# Cope with legacy calling convention, where "error" was the string
       # to print.