]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 463134: Remove "Show every bug in the system with dependencies" in dependency...
authorFrédéric Buclin <LpSolit@gmail.com>
Wed, 8 Sep 2010 12:03:43 +0000 (14:03 +0200)
committerFrédéric Buclin <LpSolit@gmail.com>
Wed, 8 Sep 2010 12:03:43 +0000 (14:03 +0200)
r/a=mkanat

showdependencygraph.cgi
template/en/default/bug/dependency-graph.html.tmpl

index 162dd2afbbc2f7f856b02b3d6de37ea3c6e2cdec..0726760b90cf996d6cec559443ab3b35fbf2012f 100755 (executable)
@@ -96,6 +96,8 @@ sub AddLink {
     }
 }
 
+ThrowCodeError("missing_bug_id") if !defined $cgi->param('id');
+
 # The list of valid directions. Some are not proposed in the dropdrown
 # menu despite the fact that they are valid.
 my @valid_rankdirs = ('LR', 'RL', 'TB', 'BT');
@@ -109,10 +111,6 @@ if (!grep { $_ eq $rankdir } @valid_rankdirs) {
 my $display = $cgi->param('display') || 'tree';
 my $webdotdir = bz_locations()->{'webdotdir'};
 
-if (!defined $cgi->param('id') && $display ne 'doall') {
-    ThrowCodeError("missing_bug_id");
-}
-
 my ($fh, $filename) = File::Temp::tempfile("XXXXXXXXXX",
                                            SUFFIX => '.dot',
                                            DIR => $webdotdir,
@@ -132,64 +130,54 @@ node [URL="${urlbase}show_bug.cgi?id=\\N", style=filled, color=lightgrey]
 
 my %baselist;
 
-if ($display eq 'doall') {
-    my $dependencies = $dbh->selectall_arrayref(
-                           "SELECT blocked, dependson FROM dependencies");
+foreach my $i (split('[\s,]+', $cgi->param('id'))) {
+    my $bug = Bugzilla::Bug->check($i);
+    $baselist{$bug->id} = 1;
+}
+
+my @stack = keys(%baselist);
 
-    foreach my $dependency (@$dependencies) {
-        my ($blocked, $dependson) = @$dependency;
-        AddLink($blocked, $dependson, $fh);
-    }
-} else {
-    foreach my $i (split('[\s,]+', $cgi->param('id'))) {
-        my $bug = Bugzilla::Bug->check($i);
-        $baselist{$bug->id} = 1;
-    }
+if ($display eq 'web') {
+    my $sth = $dbh->prepare(q{SELECT blocked, dependson
+                                FROM dependencies
+                               WHERE blocked = ? OR dependson = ?});
 
-    my @stack = keys(%baselist);
-
-    if ($display eq 'web') {
-        my $sth = $dbh->prepare(q{SELECT blocked, dependson
-                                    FROM dependencies
-                                   WHERE blocked = ? OR 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}) {
-                    push @stack, $blocked;
-                }
-                if ($dependson != $id && !exists $seen{$dependson}) {
-                    push @stack, $dependson;
-                }
-                AddLink($blocked, $dependson, $fh);
+    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}) {
+                push @stack, $blocked;
             }
+            if ($dependson != $id && !exists $seen{$dependson}) {
+                push @stack, $dependson;
+            }
+            AddLink($blocked, $dependson, $fh);
         }
     }
-    # This is the default: a tree instead of a spider web.
-    else {
-        my @blocker_stack = @stack;
-        foreach my $id (@blocker_stack) {
-            my $blocker_ids = Bugzilla::Bug::EmitDependList('blocked', 'dependson', $id);
-            foreach my $blocker_id (@$blocker_ids) {
-                push(@blocker_stack, $blocker_id) unless $seen{$blocker_id};
-                AddLink($id, $blocker_id, $fh);
-            }
+}
+# This is the default: a tree instead of a spider web.
+else {
+    my @blocker_stack = @stack;
+    foreach my $id (@blocker_stack) {
+        my $blocker_ids = Bugzilla::Bug::EmitDependList('blocked', 'dependson', $id);
+        foreach my $blocker_id (@$blocker_ids) {
+            push(@blocker_stack, $blocker_id) unless $seen{$blocker_id};
+            AddLink($id, $blocker_id, $fh);
         }
-        my @dependent_stack = @stack;
-        foreach my $id (@dependent_stack) {
-            my $dep_bug_ids = Bugzilla::Bug::EmitDependList('dependson', 'blocked', $id);
-            foreach my $dep_bug_id (@$dep_bug_ids) {
-                push(@dependent_stack, $dep_bug_id) unless $seen{$dep_bug_id};
-                AddLink($dep_bug_id, $id, $fh);
-            }
+    }
+    my @dependent_stack = @stack;
+    foreach my $id (@dependent_stack) {
+        my $dep_bug_ids = Bugzilla::Bug::EmitDependList('dependson', 'blocked', $id);
+        foreach my $dep_bug_id (@$dep_bug_ids) {
+            push(@dependent_stack, $dep_bug_id) unless $seen{$dep_bug_id};
+            AddLink($dep_bug_id, $id, $fh);
         }
     }
+}
 
-    foreach my $k (keys(%baselist)) {
-        $seen{$k} = 1;
-    }
+foreach my $k (keys(%baselist)) {
+    $seen{$k} = 1;
 }
 
 my $sth = $dbh->prepare(
index 37dcde0126b1dd43a0fdcfd7d0c87f0951099562..78fc4a8aaf66a99960205bc90856b7d2e683436c 100644 (file)
@@ -21,7 +21,6 @@
 [%# INTERFACE:
   # bug_id: integer. The number of the bug(s).
   # multiple_bugs: boolean. True if bug_id contains > 1 bug number.
-  # doall: boolean. True if we are displaying every bug in the database.
   # showsummary: boolean. True if we are showing bug summaries.
   # rankdir: string. "TB" if we are ranking top-to-bottom,
                      "LR" if left-to-right.
@@ -37,7 +36,7 @@
    header = title
  %]
 
-[% IF NOT multiple_bugs AND NOT doall %]
+[% IF NOT multiple_bugs %]
   [% filtered_desc = short_desc FILTER html %]
   [% title = "$title for $terms.bug $bug_id"
      header = "$header for $terms.bug <a href=\"show_bug.cgi?id=$bug_id\">$bug_id</a>"
@@ -82,8 +81,6 @@
             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="doall" [% 'selected="selected"' IF display == "doall" %]>
-            Show every [% terms.bug %] in the system with dependencies</option>
         </select>
       </td>
     </tr>