Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
bugzilla
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
bugzilla
Commits
a29e0e06
Commit
a29e0e06
authored
Sep 21, 2002
by
gerv%gerv.net
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 163114 - Templatise all calls to DisplayError. First patch - attachment.cgi.…
Bug 163114 - Templatise all calls to DisplayError. First patch - attachment.cgi. Patch by gerv; r=burnus.
parent
ffebf581
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
118 additions
and
66 deletions
+118
-66
attachment.cgi
attachment.cgi
+39
-66
code-error.html.tmpl
template/en/default/global/code-error.html.tmpl
+21
-0
user-error.html.tmpl
template/en/default/global/user-error.html.tmpl
+58
-0
No files found.
attachment.cgi
View file @
a29e0e06
...
...
@@ -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"
);
...
...
template/en/default/global/code-error.html.tmpl
View file @
a29e0e06
...
...
@@ -40,6 +40,10 @@
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.
...
...
@@ -47,6 +51,13 @@
[% 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.
...
...
@@ -54,6 +65,16 @@
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 %].
...
...
template/en/default/global/user-error.html.tmpl
View file @
a29e0e06
...
...
@@ -116,11 +116,28 @@
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
...
...
@@ -155,6 +172,21 @@
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.
...
...
@@ -175,6 +207,22 @@
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
...
...
@@ -221,6 +269,12 @@
[% 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
...
...
@@ -236,6 +290,10 @@
[% 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.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment