]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Fix for bug 30694: adds title attributes to bug links with bug status and description...
authordave%intrec.com <>
Thu, 25 Jan 2001 06:24:06 +0000 (06:24 +0000)
committerdave%intrec.com <>
Thu, 25 Jan 2001 06:24:06 +0000 (06:24 +0000)
bug_form.pl
globals.pl

index 58f1b6cb2a468b9d3c012eef5e5861c4a566cd1a..fcd33a7a175bb22baf4461cdeeaabc6e60adf307 100644 (file)
@@ -321,24 +321,15 @@ sub EmitDependList {
     my ($desc, $myfield, $targetfield) = (@_);
     print "<th align=right>$desc:</th><td>";
     my @list;
-    SendSQL("select dependencies.$targetfield, bugs.bug_status, short_desc
+    SendSQL("select dependencies.$targetfield
  from dependencies, bugs
  where dependencies.$myfield = $id
    and bugs.bug_id = dependencies.$targetfield
  order by dependencies.$targetfield");
     while (MoreSQLData()) {
-        my ($i, $stat, $dep_desc) = (FetchSQLData());
+        my ($i) = (FetchSQLData());
         push(@list, $i);
-        my $opened = ($stat eq "NEW" || $stat eq "ASSIGNED" ||
-                      $stat eq "REOPENED");
-        if (!$opened) {
-            print "<strike>";
-        }
-        $dep_desc = value_quote($dep_desc);
-        print qq{<a href="show_bug.cgi?id=$i" title="$stat - $dep_desc">$i</a>};
-        if (!$opened) {
-            print "</strike>";
-        }
+        print GetBugLink($i, $i);
         print " ";
     }
     print "</td><td><input name=$targetfield value=\"" .
index 34f6b3cf5589c100bc503bc421275fbfd48cf2c6..6f4e86a32843325c3ef3f76bbfa49d1543fdd1e1 100644 (file)
@@ -673,11 +673,6 @@ sub quoteUrls {
     my ($knownattachments, $text) = (@_);
     return $text unless $text;
     
-    # make sure that any unfetched data from a currently running query 
-    # is saved off rather than overwritten
-    #
-    PushGlobalSQLState();
-
     my $base = Param('urlbase');
 
     my $protocol = join '|',
@@ -716,23 +711,15 @@ sub quoteUrls {
     while ($text =~ s/\bbug(\s|%\#)*(\d+)/"##$count##"/ei) {
         my $item = $&;
         my $num = $2;
-        SendSQL("select bugs.bug_status, short_desc
-        from bugs where bugs.bug_id = $num");
-        my ($stat, $dep_desc) = (FetchSQLData());
-        $item = value_quote($item); # Not really necessary, since we know
-                                    # there's no special chars in it.
-        $dep_desc = value_quote($dep_desc);
-        $item = qq{<A HREF="show_bug.cgi?id=$num" title="$stat - $dep_desc">$item</A>};
+        $item = GetBugLink($num, $item);
         $things[$count++] = $item;
     }
     while ($text =~ s/\*\*\* This bug has been marked as a duplicate of (\d+) \*\*\*/"##$count##"/ei) {
         my $item = $&;
         my $num = $1;
-        SendSQL("select bugs.bug_status, short_desc
-        from bugs where bugs.bug_id = $num");
-        my ($stat, $dep_desc) = (FetchSQLData());
-        $dep_desc = value_quote($dep_desc);
-        $item =~ s@\d+@<A HREF="show_bug.cgi?id=$num" title="$stat - $dep_desc">$num</A>@;
+        my $bug_link;
+        $bug_link = GetBugLink($num, $num);
+        $item =~ s@\d+@$bug_link@;
         $things[$count++] = $item;
     }
     while ($text =~ s/Created an attachment \(id=(\d+)\)/"##$count##"/e) {
@@ -755,10 +742,49 @@ sub quoteUrls {
     # And undo the quoting of "#" characters.
     $text =~ s/%#/#/g;
 
-    # put back any query info in progress
+    return $text;
+}
+
+# This is a new subroutine written 12/20/00 for the purpose of processing a
+# link to a bug.  It can be called using "GetBugLink (<BugNumber>, <LinkText>);"
+# Where <BugNumber> is the number of the bug and <LinkText> is what apprears
+# between '<a>' and '</a>'.
+
+sub GetBugLink {
+    my ($bug_num, $link_text) = (@_);
+    my ($link_return) = "";
+
+    # TODO - Add caching capabilites... possibly use a global variable in the form
+    # of $buglink{$bug_num} that contains the text returned by this sub.  If that
+    # variable is defined, simply return it's value rather than running the SQL
+    # query.  This would cut down on the number of SQL calls when the same bug is
+    # referenced multiple times.
+    
+    # Make sure any unfetched data from a currently running query
+    # is saved off rather than overwritten
+    PushGlobalSQLState();
+    
+    # Get this bug's info from the SQL Database
+    SendSQL("select bugs.bug_status, resolution, short_desc
+             from bugs where bugs.bug_id = $bug_num");
+    my ($bug_stat, $bug_res, $bug_desc) = (FetchSQLData());
+    
+    # Format the retrieved information into a link
+    if ($bug_stat eq "UNCONFIRMED") { $link_return .= "<i>" }
+    if ($bug_res ne "") { $link_return .= "<strike>" }
+    $bug_desc = value_quote($bug_desc);
+    $link_text = value_quote($link_text);
+    $link_return .= qq{<a href="show_bug.cgi?id=$bug_num" title="$bug_stat};
+    if ($bug_res ne "") {$link_return .= " $bug_res"}
+    $link_return .= qq{ - $bug_desc">$link_text</a>};
+    if ($bug_res ne "") { $link_return .= "</strike>" }
+    if ($bug_stat eq "UNCONFIRMED") { $link_return .= "</i>"}
+    
+    # Put back any query in progress
     PopGlobalSQLState();
 
-    return $text;
+    return $link_return; 
+
 }
 
 sub GetLongDescriptionAsText {