Bug 54750 - openweb option

git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@685 6955db30-a419-402b-8a0d-67ecbb4d7f56
master
vfilippov 2010-03-15 16:21:31 +00:00
parent 7bee502e22
commit e7364c6775
2 changed files with 16 additions and 7 deletions

View File

@ -306,21 +306,28 @@ sub GetEdges
my @stack = keys %$baselist;
if ($display eq 'web')
# web: Any relationship with selected bugs
# openweb: Any relationship with selected bugs + state must be open
if ($display eq 'web' || $display eq 'openweb')
{
my $sth = $dbh->prepare("SELECT blocked, dependson
FROM dependencies
WHERE blocked = ? OR dependson = ?");
my $openweb = $display eq 'openweb' ? 1 : 0;
my $sth = $dbh->prepare("SELECT blocked, dependson, bs.bug_status blocked_status, ds.bug_status dependson_status
FROM dependencies, bugs bs, bugs ds
WHERE (blocked=? OR dependson=?) AND bs.bug_id=blocked AND ds.bug_id=dependson");
foreach my $id (@stack)
{
my $dependencies = $dbh->selectall_arrayref($sth, undef, ($id, $id));
foreach my $dependency (@$dependencies)
{
my ($blocked, $dependson) = @$dependency;
if ($blocked != $id && !exists $seen->{$blocked}) {
my ($blocked, $dependson, $bs, $ds) = @$dependency;
if ($blocked != $id && !exists $seen->{$blocked})
{
next if $openweb && !is_open_state($bs); # skip AddLink also
push @stack, $blocked;
}
if ($dependson != $id && !exists $seen->{$dependson}) {
if ($dependson != $id && !exists $seen->{$dependson})
{
next if $openweb && !is_open_state($ds); # skip AddLink also
push @stack, $dependson;
}
AddLink($blocked, $dependson, $seen, $edges);

View File

@ -98,6 +98,8 @@
Restrict to [% terms.bugs %] having a direct relationship with entered [% terms.bugs %]</option>
<option value="web" [% 'selected="selected"' IF display == "web" %]>
Show all [% terms.bugs %] having any relationship with entered [% terms.bugs %]</option>
<option value="openweb" [% 'selected="selected"' IF display == "openweb" %]>
Show all open [% terms.bugs %] having any relationship with entered [% terms.bugs %]</option>
</select>
</td>
</tr>