diff options
-rw-r--r-- | Bugzilla/Template.pm | 72 | ||||
-rw-r--r-- | template/en/default/attachment/create.html.tmpl | 2 | ||||
-rw-r--r-- | template/en/default/attachment/show-multiple.html.tmpl | 2 | ||||
-rw-r--r-- | template/en/default/bug/activity/show.html.tmpl | 4 | ||||
-rw-r--r-- | template/en/default/bug/process/midair.html.tmpl | 4 | ||||
-rw-r--r-- | template/en/default/bug/votes/list-for-user.html.tmpl | 2 |
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 "<missing bug number>"; + if (!$bug) { + return html_quote('<missing bug number>'); } - my $quote_bug_num = html_quote($bug_num); - detaint_natural($bug_num) || return "<invalid bug number: $quote_bug_num>"; - 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 %] |