Bug 365300: [mod_perl] Editing a saved search does not re-populate the search page - Patch by Fr��d��ric Buclin <LpSolit@gmail.com> r/a=justdave

This commit is contained in:
lpsolit%gmail.com 2006-12-29 20:55:08 +00:00
Родитель 7c7a8b4291
Коммит fac2d78074
2 изменённых файлов: 16 добавлений и 30 удалений

Просмотреть файл

@ -111,6 +111,7 @@ local our %default;
# and ignore any multiple values.
sub PrefillForm {
my ($buf) = (@_);
$buf = new Bugzilla::CGI($buf);
my $foundone = 0;
# Nothing must be undef, otherwise the template complains.
@ -132,26 +133,14 @@ sub PrefillForm {
"category", "subcategory", "name", "newcategory",
"newsubcategory", "public", "frequency")
{
# This is a bit of a hack. The default, empty list has
# three entries to accommodate the needs of the email fields -
# we use each position to denote the relevant field. Array
# position 0 is unused for email fields because the form
# parameters historically started at 1.
$default{$name} = ["", "", ""];
$default{$name} = [];
}
# Iterate over the URL parameters
foreach my $item (split(/\&/, $buf)) {
my @el = split(/=/, $item);
my $name = $el[0];
my $value;
if ($#el > 0) {
$value = Bugzilla::Util::url_decode($el[1]);
} else {
$value = "";
}
foreach my $name ($buf->param()) {
my @values = $buf->param($name);
# If the name begins with field, type, or value, then it is part of
# the boolean charts. Because these are built different than the rest
# of the form, we don't need to save a default value. We do, however,
@ -165,22 +154,16 @@ sub PrefillForm {
# positions to show the defaults for that number field.
elsif ($name =~ m/^(.+)(\d)$/ && defined($default{$1})) {
$foundone = 1;
$default{$1}->[$2] = $value;
$default{$1}->[$2] = $values[0];
}
# If there's no default yet, we replace the blank string.
elsif (defined($default{$name}) && $default{$name}->[0] eq "") {
elsif (exists $default{$name}) {
$foundone = 1;
$default{$name} = [$value];
}
# If there's already a default, we push on the new value.
elsif (defined($default{$name})) {
push (@{$default{$name}}, $value);
}
}
push (@{$default{$name}}, @values);
}
}
return $foundone;
}
if (!PrefillForm($buffer)) {
# Ah-hah, there was no form stuff specified. Do it again with the
# default query.
@ -335,7 +318,7 @@ if ($cgi->param('order')) { $deforder = $cgi->param('order') }
$vars->{'userdefaultquery'} = $userdefaultquery;
$vars->{'orders'} = \@orders;
$default{'querytype'} = $deforder || 'Importance';
$default{'order'} = [$deforder || 'Importance'];
if (($cgi->param('query_format') || $cgi->param('format') || "")
eq "create-series") {

Просмотреть файл

@ -57,8 +57,11 @@
<input type="submit" id="[% button_name FILTER html %]"
value="[% button_name FILTER html %]">
[% IF known_name %]
<input type="hidden" name="query_based_on"
value="[% known_name FILTER html %]">
[%# We store known_name in case the user add a boolean chart. %]
<input type="hidden" name="known_name" value="[% known_name FILTER html %]">
[%# The name of the existing query will be passed to buglist.cgi. %]
<input type="hidden" name="query_based_on" value="[% known_name FILTER html %]">
[% END %]
</p>