mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-01-09 05:14:24 +00:00
Bug 195695 - Requesting a non-existant format results in an Internal Error
r=gerv, a=myk
This commit is contained in:
parent
86b5a0ee33
commit
cc51915dd4
@ -1490,6 +1490,7 @@ sub FormatTimeUnit {
|
||||
# Constructs a format object from URL parameters. You most commonly call it
|
||||
# like this:
|
||||
# my $format = GetFormat("foo/bar", $::FORM{'format'}, $::FORM{'ctype'});
|
||||
|
||||
sub GetFormat {
|
||||
my ($template, $format, $ctype) = @_;
|
||||
|
||||
@ -1505,11 +1506,28 @@ sub GetFormat {
|
||||
$template .= ($format ? "-$format" : "");
|
||||
$template .= ".$ctype.tmpl";
|
||||
|
||||
# Now check that the template actually exists. We only want to check
|
||||
# if the template exists; any other errors (eg parse errors) will
|
||||
# end up being detected laer.
|
||||
eval {
|
||||
Bugzilla->template->context->template($template);
|
||||
};
|
||||
# This parsing may seem fragile, but its OK:
|
||||
# http://lists.template-toolkit.org/pipermail/templates/2003-March/004370.html
|
||||
# Even if it is wrong, any sort of error is going to cause a failure
|
||||
# eventually, so the only issue would be an incorrect error message
|
||||
if ($@ && $@->info =~ /: not found$/) {
|
||||
ThrowUserError("format_not_found", { 'format' => $format,
|
||||
'ctype' => $ctype,
|
||||
});
|
||||
}
|
||||
|
||||
# Else, just return the info
|
||||
return
|
||||
{
|
||||
'template' => $template ,
|
||||
'extension' => $ctype ,
|
||||
'ctype' => $::contenttypes->{$ctype} || "text/plain" ,
|
||||
'ctype' => $::contenttypes->{$ctype} ,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -192,6 +192,11 @@
|
||||
[% ELSIF error == "flag_type_name_invalid" %]
|
||||
[% title = "Flag Type Name Invalid" %]
|
||||
The name <em>[% name FILTER html %]</em> must be 1-50 characters long.
|
||||
|
||||
[% ELSIF error == "format_not_found" %]
|
||||
[% title = "Format Not Found" %]
|
||||
The requested format <em>[% format FILTER html %]</em> does not exist with
|
||||
a content type of <em>[% ctype FILTER html %]</em>.
|
||||
|
||||
[% ELSIF error == "flag_type_sortkey_invalid" %]
|
||||
[% title = "Flag Type Sort Key Invalid" %]
|
||||
|
Loading…
Reference in New Issue
Block a user