зеркало из https://github.com/mozilla/pjs.git
Bug 170064 - Change error API again to allow vars to be passed in the call. Patch by gerv; r=bbaetz.
This commit is contained in:
Родитель
c3b891f4e1
Коммит
32e2672088
|
@ -223,7 +223,7 @@ sub CheckFormField (\%$;\@) {
|
||||||
$vars->{'field'} = $fieldname;
|
$vars->{'field'} = $fieldname;
|
||||||
}
|
}
|
||||||
|
|
||||||
ThrowCodeError("illegal_field", "abort");
|
ThrowCodeError("illegal_field", undef, "abort");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -827,6 +827,10 @@ sub PutFooter {
|
||||||
#
|
#
|
||||||
# If you are doing incremental output, set $vars->{'header_done'} once you've
|
# If you are doing incremental output, set $vars->{'header_done'} once you've
|
||||||
# done the header.
|
# done the header.
|
||||||
|
#
|
||||||
|
# You can call Throw*Error with extra template variables in one pass by using
|
||||||
|
# the $extra_vars hash reference parameter:
|
||||||
|
# ThrowUserError("some_tag", { bug_id => $bug_id, size => 127 });
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# DisplayError is deprecated. Use ThrowCodeError, ThrowUserError or
|
# DisplayError is deprecated. Use ThrowCodeError, ThrowUserError or
|
||||||
|
@ -842,13 +846,18 @@ sub DisplayError {
|
||||||
}
|
}
|
||||||
|
|
||||||
# For "this shouldn't happen"-type places in the code.
|
# For "this shouldn't happen"-type places in the code.
|
||||||
# $vars->{'variables'} is a reference to a hash of useful debugging info.
|
# The contents of $extra_vars get printed out in the template - useful for
|
||||||
|
# debugging info.
|
||||||
sub ThrowCodeError {
|
sub ThrowCodeError {
|
||||||
($vars->{'error'}, my $unlock_tables, $vars->{'variables'}) = (@_);
|
($vars->{'error'}, my $extra_vars, my $unlock_tables) = (@_);
|
||||||
|
|
||||||
SendSQL("UNLOCK TABLES") if $unlock_tables;
|
SendSQL("UNLOCK TABLES") if $unlock_tables;
|
||||||
|
|
||||||
# We may one day log something to file here.
|
# Copy the extra_vars into the vars hash
|
||||||
|
@::vars{keys %$extra_vars} = values %$extra_vars;
|
||||||
|
|
||||||
|
# We may one day log something to file here also.
|
||||||
|
$vars->{'variables'} = $extra_vars;
|
||||||
|
|
||||||
print "Content-type: text/html\n\n" if !$vars->{'header_done'};
|
print "Content-type: text/html\n\n" if !$vars->{'header_done'};
|
||||||
$template->process("global/code-error.html.tmpl", $vars)
|
$template->process("global/code-error.html.tmpl", $vars)
|
||||||
|
@ -859,10 +868,13 @@ sub ThrowCodeError {
|
||||||
|
|
||||||
# For errors made by the user.
|
# For errors made by the user.
|
||||||
sub ThrowUserError {
|
sub ThrowUserError {
|
||||||
($vars->{'error'}, my $unlock_tables) = (@_);
|
($vars->{'error'}, my $extra_vars, my $unlock_tables) = (@_);
|
||||||
|
|
||||||
SendSQL("UNLOCK TABLES") if $unlock_tables;
|
SendSQL("UNLOCK TABLES") if $unlock_tables;
|
||||||
|
|
||||||
|
# Copy the extra_vars into the vars hash
|
||||||
|
@::vars{keys %$extra_vars} = values %$extra_vars;
|
||||||
|
|
||||||
print "Content-type: text/html\n\n" if !$vars->{'header_done'};
|
print "Content-type: text/html\n\n" if !$vars->{'header_done'};
|
||||||
$template->process("global/user-error.html.tmpl", $vars)
|
$template->process("global/user-error.html.tmpl", $vars)
|
||||||
|| ThrowTemplateError($template->error());
|
|| ThrowTemplateError($template->error());
|
||||||
|
|
|
@ -262,14 +262,14 @@ foreach my $b (grep(/^bit-\d*$/, keys %::FORM)) {
|
||||||
if ($::FORM{$b}) {
|
if ($::FORM{$b}) {
|
||||||
my $v = substr($b, 4);
|
my $v = substr($b, 4);
|
||||||
$v =~ /^(\d+)$/
|
$v =~ /^(\d+)$/
|
||||||
|| ThrowCodeError("group_id_invalid", "abort");
|
|| ThrowCodeError("group_id_invalid", undef, "abort");
|
||||||
if (!GroupIsActive($v)) {
|
if (!GroupIsActive($v)) {
|
||||||
# Prevent the user from adding the bug to an inactive group.
|
# Prevent the user from adding the bug to an inactive group.
|
||||||
# Should only happen if there is a bug in Bugzilla or the user
|
# Should only happen if there is a bug in Bugzilla or the user
|
||||||
# hacked the "enter bug" form since otherwise the UI
|
# hacked the "enter bug" form since otherwise the UI
|
||||||
# for adding the bug to the group won't appear on that form.
|
# for adding the bug to the group won't appear on that form.
|
||||||
$vars->{'bit'} = $v;
|
$vars->{'bit'} = $v;
|
||||||
ThrowCodeError("inactive_group", "abort");
|
ThrowCodeError("inactive_group", undef, "abort");
|
||||||
}
|
}
|
||||||
SendSQL("SELECT user_id FROM user_group_map
|
SendSQL("SELECT user_id FROM user_group_map
|
||||||
WHERE user_id = $::userid
|
WHERE user_id = $::userid
|
||||||
|
|
|
@ -1067,7 +1067,7 @@ foreach my $id (@idlist) {
|
||||||
$vars->{'oldvalue'} = $oldvalues[$i];
|
$vars->{'oldvalue'} = $oldvalues[$i];
|
||||||
$vars->{'newvalue'} = $::FORM{$col};
|
$vars->{'newvalue'} = $::FORM{$col};
|
||||||
$vars->{'field'} = $col;
|
$vars->{'field'} = $col;
|
||||||
ThrowUserError("illegal_change", "abort");
|
ThrowUserError("illegal_change", undef, "abort");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
|
@ -1082,7 +1082,7 @@ foreach my $id (@idlist) {
|
||||||
if ($value eq FetchOneColumn()) {
|
if ($value eq FetchOneColumn()) {
|
||||||
SendSQL("UNLOCK TABLES");
|
SendSQL("UNLOCK TABLES");
|
||||||
$vars->{'bug_id'} = $id;
|
$vars->{'bug_id'} = $id;
|
||||||
ThrowUserError("milestone_required", "abort");
|
ThrowUserError("milestone_required", undef, "abort");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (defined $::FORM{'delta_ts'} && $::FORM{'delta_ts'} ne $delta_ts) {
|
if (defined $::FORM{'delta_ts'} && $::FORM{'delta_ts'} ne $delta_ts) {
|
||||||
|
@ -1117,7 +1117,7 @@ foreach my $id (@idlist) {
|
||||||
next if $i eq "";
|
next if $i eq "";
|
||||||
|
|
||||||
if ($id eq $i) {
|
if ($id eq $i) {
|
||||||
ThrowUserError("dependency_loop_single", "abort");
|
ThrowUserError("dependency_loop_single", undef, "abort");
|
||||||
}
|
}
|
||||||
if (!exists $seen{$i}) {
|
if (!exists $seen{$i}) {
|
||||||
push(@{$deptree{$target}}, $i);
|
push(@{$deptree{$target}}, $i);
|
||||||
|
@ -1161,7 +1161,7 @@ foreach my $id (@idlist) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$vars->{'both'} = $both;
|
$vars->{'both'} = $both;
|
||||||
ThrowUserError("dependency_loop_multi", "abort");
|
ThrowUserError("dependency_loop_multi", undef, "abort");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
my $tmp = $me;
|
my $tmp = $me;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче