Commit c0486757 authored by mkanat%bugzilla.org's avatar mkanat%bugzilla.org

Bug 508737: Allow Bugzilla::Template::get_bug_link to take a Bugzilla::Bug…

Bug 508737: Allow Bugzilla::Template::get_bug_link to take a Bugzilla::Bug object if one is available Patch by Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=LpSolit
parent c427a6f7
......@@ -34,6 +34,7 @@ package Bugzilla::Template;
use strict;
use Bugzilla::Bug;
use Bugzilla::Constants;
use Bugzilla::Install::Requirements;
use Bugzilla::Install::Util qw(install_string template_include_path include_languages);
......@@ -52,6 +53,7 @@ use File::Find;
use File::Path qw(rmtree mkpath);
use File::Spec;
use IO::Dir;
use Scalar::Util qw(blessed);
use base qw(Template);
......@@ -327,54 +329,46 @@ sub get_attachment_link {
# comment in the bug
sub get_bug_link {
my ($bug_num, $link_text, $options) = @_;
my ($bug, $link_text, $options) = @_;
my $dbh = Bugzilla->dbh;
if (!defined($bug_num) || ($bug_num eq "")) {
return "&lt;missing bug number&gt;";
if (!$bug) {
return html_quote('<missing bug number>');
}
my $quote_bug_num = html_quote($bug_num);
detaint_natural($bug_num) || return "&lt;invalid bug number: $quote_bug_num&gt;";
my ($bug_alias, $bug_state, $bug_res, $bug_desc) =
$dbh->selectrow_array('SELECT bugs.alias, bugs.bug_status, bugs.resolution, bugs.short_desc
FROM bugs WHERE bugs.bug_id = ?',
undef, $bug_num);
if ($options->{use_alias} && $link_text =~ /^\d+$/ && $bug_alias) {
$link_text = $bug_alias;
$bug = blessed($bug) ? $bug : new Bugzilla::Bug($bug);
return $link_text if $bug->{error};
if ($options->{use_alias} && $link_text =~ /^\d+$/ && $bug->alias) {
$link_text = $bug->alias;
}
if ($bug_state) {
# Initialize these variables to be "" so that we don't get warnings
# if we don't change them below (which is highly likely).
my ($pre, $title, $post) = ("", "", "");
$title = get_text('get_status', {status => $bug_state});
if ($bug_state eq 'UNCONFIRMED') {
$pre = "<i>";
$post = "</i>";
}
elsif (!is_open_state($bug_state)) {
$pre = '<span class="bz_closed">';
$title .= ' ' . get_text('get_resolution', {resolution => $bug_res});
$post = '</span>';
}
if (Bugzilla->user->can_see_bug($bug_num)) {
$title .= " - $bug_desc";
}
# Prevent code injection in the title.
$title = html_quote(clean_text($title));
# Initialize these variables to be "" so that we don't get warnings
# if we don't change them below (which is highly likely).
my ($pre, $title, $post) = ("", "", "");
my $linkval = "show_bug.cgi?id=$bug_num";
if ($options->{comment_num}) {
$linkval .= "#c" . $options->{comment_num};
}
return qq{$pre<a href="$linkval" title="$title">$link_text</a>$post};
$title = get_text('get_status', { status => $bug->bug_status });
if ($bug->bug_status eq 'UNCONFIRMED') {
$pre = "<i>";
$post = "</i>";
}
else {
return qq{$link_text};
if ($bug->resolution) {
$pre .= '<span class="bz_closed">';
$title .= ' ' . get_text('get_resolution',
{ resolution => $bug->resolution });
$post .= '</span>';
}
if (Bugzilla->user->can_see_bug($bug)) {
$title .= " - " . $bug->short_desc;
}
# Prevent code injection in the title.
$title = html_quote(clean_text($title));
my $linkval = "show_bug.cgi?id=" . $bug->id;
if ($options->{comment_num}) {
$linkval .= "#c" . $options->{comment_num};
}
return qq{$pre<a href="$linkval" title="$title">$link_text</a>$post};
}
###############################################################################
......
......@@ -26,7 +26,7 @@
[%# Define strings that will serve as the title and header of this page %]
[% title = BLOCK %]Create New Attachment for [% terms.Bug %] #[% bug.bug_id %][% END %]
[% header = BLOCK %]Create New Attachment for
[%+ "$terms.Bug $bug.bug_id" FILTER bug_link(bug.bug_id) FILTER none %][% END %]
[%+ "$terms.Bug $bug.bug_id" FILTER bug_link(bug) FILTER none %][% END %]
[% subheader = BLOCK %][% bug.short_desc FILTER html %][% END %]
[% PROCESS global/header.html.tmpl
......
......@@ -21,7 +21,7 @@
[% PROCESS global/variables.none.tmpl %]
[% filtered_summary = bugsummary FILTER html %]
[% header = BLOCK %]View All Attachments for
[%+ "$terms.Bug $bug.bug_id" FILTER bug_link(bug.bug_id) FILTER none %][% END %]
[%+ "$terms.Bug $bug.id" FILTER bug_link(bug) FILTER none %][% END %]
[% title = BLOCK %]
View All Attachments for [% terms.Bug %] [%+ bug.bug_id FILTER html %]
......
......@@ -35,14 +35,14 @@
%]
<p>
[% "Back to $terms.bug $bug.bug_id" FILTER bug_link(bug.bug_id) FILTER none %]
[% "Back to $terms.bug $bug.bug_id" FILTER bug_link(bug) FILTER none %]
</p>
[% PROCESS bug/activity/table.html.tmpl %]
[% IF operations.size > 0 %]
<p>
[% "Back to $terms.bug $bug.bug_id" FILTER bug_link(bug.bug_id) FILTER none %]
[% "Back to $terms.bug $bug.bug_id" FILTER bug_link(bug) FILTER none %]
</p>
[% END %]
......
......@@ -45,7 +45,7 @@
<p>
Someone else has made changes to
[%+ "$terms.bug $bug.id" FILTER bug_link(bug.id) FILTER none %]
[%+ "$terms.bug $bug.id" FILTER bug_link(bug) FILTER none %]
at the same time you were trying to.
The changes made were:
</p>
......@@ -101,7 +101,7 @@ You have the following choices:
[% END %]
<li>
Throw away my changes, and
[%+ "revisit $terms.bug $bug.id" FILTER bug_link(bug.id) FILTER none %]
[%+ "revisit $terms.bug $bug.id" FILTER bug_link(bug) FILTER none %]
</li>
</ul>
......
......@@ -126,7 +126,7 @@
[% END %]
</a></td>
<td align="center">
[% bug.id FILTER bug_link(bug.id) FILTER none %]
[% bug.id FILTER bug_link(bug) FILTER none %]
</td>
<td>
[% bug.summary FILTER html %]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment