diff options
author | dave%intrec.com <> | 2001-01-25 06:24:06 +0000 |
---|---|---|
committer | dave%intrec.com <> | 2001-01-25 06:24:06 +0000 |
commit | 144c47058535c630991b466ac80346a30852cb13 (patch) | |
tree | 0cd95d5bb1b3faa745b7cc3cfa9f366a6c031a3e | |
parent | 6acecb501e1770efea3f96307973330eb5fa9af1 (diff) | |
download | bugs-144c47058535c630991b466ac80346a30852cb13.tar bugs-144c47058535c630991b466ac80346a30852cb13.tar.gz bugs-144c47058535c630991b466ac80346a30852cb13.tar.bz2 bugs-144c47058535c630991b466ac80346a30852cb13.tar.xz bugs-144c47058535c630991b466ac80346a30852cb13.zip |
Fix for bug 30694: adds title attributes to bug links with bug status and description. Patch by jake@acutex.net
-rw-r--r-- | bug_form.pl | 15 | ||||
-rw-r--r-- | globals.pl | 64 |
2 files changed, 48 insertions, 31 deletions
diff --git a/bug_form.pl b/bug_form.pl index 58f1b6cb2..fcd33a7a1 100644 --- a/bug_form.pl +++ b/bug_form.pl @@ -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=\"" . diff --git a/globals.pl b/globals.pl index 34f6b3cf5..6f4e86a32 100644 --- a/globals.pl +++ b/globals.pl @@ -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 { |