diff options
-rw-r--r-- | Bugzilla/Bug.pm | 23 | ||||
-rw-r--r-- | template/en/default/bug/edit.html.tmpl | 31 |
2 files changed, 50 insertions, 4 deletions
diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 40bf3af2e..62099c423 100644 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -487,10 +487,11 @@ sub preload { my @all_dep_ids; foreach my $bug (@$bugs) { push(@all_dep_ids, @{ $bug->blocked }, @{ $bug->dependson }); + push(@all_dep_ids, @{ $bug->duplicate_ids }); } @all_dep_ids = uniq @all_dep_ids; # If we don't do this, can_see_bug will do one call per bug in - # the dependency lists, during get_bug_link in Bugzilla::Template. + # the dependency and duplicate lists, in Bugzilla::Template::get_bug_link. $user->visible_bugs(\@all_dep_ids); } @@ -3243,6 +3244,26 @@ sub depends_on_obj { return $self->{depends_on_obj}; } +sub duplicates { + my $self = shift; + return $self->{duplicates} if exists $self->{duplicates}; + return [] if $self->{error}; + $self->{duplicates} = Bugzilla::Bug->new_from_list($self->duplicate_ids); + return $self->{duplicates}; +} + +sub duplicate_ids { + my $self = shift; + return $self->{duplicate_ids} if exists $self->{duplicate_ids}; + return [] if $self->{error}; + + my $dbh = Bugzilla->dbh; + $self->{duplicate_ids} = + $dbh->selectcol_arrayref('SELECT dupe FROM duplicates WHERE dupe_of = ?', + undef, $self->id); + return $self->{duplicate_ids}; +} + sub flag_types { my ($self) = @_; return $self->{'flag_types'} if exists $self->{'flag_types'}; diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl index ab150dd31..c2f8894d7 100644 --- a/template/en/default/bug/edit.html.tmpl +++ b/template/en/default/bug/edit.html.tmpl @@ -164,8 +164,10 @@ [% PROCESS section_url_keyword_whiteboard %] [% PROCESS section_spacer %] - - [%# *** Dependencies *** %] + + [%# *** Dependencies and duplicates *** %] + [% PROCESS section_duplicates %] + [% PROCESS section_dependson_blocks %] </table> @@ -625,8 +627,31 @@ [% END %] [%############################################################################%] -[%# Block for Depends On / Blocks #%] +[%# Block for Duplicates #%] +[%############################################################################%] + +[% BLOCK section_duplicates %] + [% RETURN UNLESS bug.duplicates.size %] + <tr> + <td class="field_label"> + <label for="duplicates">Duplicates</label>: + </td> + <td class="field_value" colspan="2"> + <span id="duplicates"> + [% FOREACH dupe = bug.duplicates %] + [% dupe.id FILTER bug_link(dupe, use_alias => 1) FILTER none %][% " " %] + [% END %] + </span> + (<a href="buglist.cgi?bug_id=[% bug.duplicate_ids.join(",") FILTER html %]"> + [%-%]view as [% terms.bug %] list</a>) + </td> + </tr> +[% END %] + +[%############################################################################%] +[%# Block for Depends On / Blocks #%] [%############################################################################%] + [% BLOCK section_dependson_blocks %] <tr> [% INCLUDE dependencies |