summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkanat%bugzilla.org <>2009-08-06 17:02:47 +0200
committermkanat%bugzilla.org <>2009-08-06 17:02:47 +0200
commitc048675731f016f0b4b7eb1b901ad0c3d8dd69dd (patch)
treece860df6342dd3d04c4da9c340dcfbb73bf1c746
parentc427a6f710a60ffbca41b3cca62de949f1407059 (diff)
downloadbugzilla-c048675731f016f0b4b7eb1b901ad0c3d8dd69dd.tar.gz
bugzilla-c048675731f016f0b4b7eb1b901ad0c3d8dd69dd.tar.xz
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
-rw-r--r--Bugzilla/Template.pm72
-rw-r--r--template/en/default/attachment/create.html.tmpl2
-rw-r--r--template/en/default/attachment/show-multiple.html.tmpl2
-rw-r--r--template/en/default/bug/activity/show.html.tmpl4
-rw-r--r--template/en/default/bug/process/midair.html.tmpl4
-rw-r--r--template/en/default/bug/votes/list-for-user.html.tmpl2
6 files changed, 40 insertions, 46 deletions
diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm
index d7ebfc055..f90e472b5 100644
--- a/Bugzilla/Template.pm
+++ b/Bugzilla/Template.pm
@@ -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};
}
###############################################################################
diff --git a/template/en/default/attachment/create.html.tmpl b/template/en/default/attachment/create.html.tmpl
index f725f1076..c265ae567 100644
--- a/template/en/default/attachment/create.html.tmpl
+++ b/template/en/default/attachment/create.html.tmpl
@@ -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
diff --git a/template/en/default/attachment/show-multiple.html.tmpl b/template/en/default/attachment/show-multiple.html.tmpl
index 36088c96c..1f8cab88a 100644
--- a/template/en/default/attachment/show-multiple.html.tmpl
+++ b/template/en/default/attachment/show-multiple.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 %]
diff --git a/template/en/default/bug/activity/show.html.tmpl b/template/en/default/bug/activity/show.html.tmpl
index a457df018..67ac689ca 100644
--- a/template/en/default/bug/activity/show.html.tmpl
+++ b/template/en/default/bug/activity/show.html.tmpl
@@ -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 %]
diff --git a/template/en/default/bug/process/midair.html.tmpl b/template/en/default/bug/process/midair.html.tmpl
index ed3be74d3..6e0458f24 100644
--- a/template/en/default/bug/process/midair.html.tmpl
+++ b/template/en/default/bug/process/midair.html.tmpl
@@ -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>
diff --git a/template/en/default/bug/votes/list-for-user.html.tmpl b/template/en/default/bug/votes/list-for-user.html.tmpl
index 50dff7d5e..2f97616ed 100644
--- a/template/en/default/bug/votes/list-for-user.html.tmpl
+++ b/template/en/default/bug/votes/list-for-user.html.tmpl
@@ -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 %]