[%# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
#%]
[% PROCESS global/header.html.tmpl
title = "Full Text $terms.Bug Listing"
h1 = ""
style_urls = ['skins/standard/buglist.css']
doc_section = "using.html#anatomy-of-a-bug"
%]
[% USE Bugzilla %]
[% PROCESS bug/time.html.tmpl %]
[% IF bugs.first %]
[% ids = [] %]
[% FOREACH bug = bugs %]
[% PROCESS bug_display %]
[% ids.push(bug.bug_id) UNLESS bug.error %]
[% END %]
[% IF ids.size > 1 %]
[% END %]
[% ELSE %]
You'd have more luck if you gave me some [% terms.bug %] numbers.
[% END %]
[% PROCESS global/footer.html.tmpl %]
[%###########################################################################%]
[%# Block for an individual bug #%]
[%###########################################################################%]
[% BLOCK bug_display %]
[% IF bug.error %]
[% IF bug.error == "InvalidBugId" %]
'[%+ bug.bug_id FILTER html %]' is not a valid [% terms.bug %] number
nor a known [% terms.bug %] alias.
[% ELSIF bug.error == "NotPermitted" %]
You are not allowed to view this [% terms.bug %].
[% ELSIF bug.error == "NotFound" %]
This [% terms.bug %] cannot be found.
[% ELSE %]
[%+ bug.error FILTER html %]
[% END %]
|
[% ELSE %]
[%# The rightcell block (also called by the row block) automatically shows
# the fields from rightcells %]
[% rightcells = ['reporter', 'assigned_to'] %]
[% IF Param('useqacontact') %]
[% rightcells.push('qa_contact') %]
[% END %]
[% rightcells.push('') %]
[% IF bug.cc.size %]
[% rightcells.push('cc') %]
[% END %]
[% IF bug.keywords %]
[% rightcells.push('keywords') %]
[% END %]
[%# Determine if the bug has a flag %]
[% FOREACH type = bug.flag_types %]
[% IF type.flags.size %]
[% rightcells.push('flags') %]
[% LAST %]
[% END %]
[% END %]
[% PROCESS row cell = "short_desc" fullrow = 1 %]
[% field_descs.product FILTER html %]: |
[% IF Param("useclassification") && bug.classification_id != 1 %]
[[% bug.classification FILTER html %]]
[% END %]
[% bug.product FILTER html %]
|
[% PROCESS rightcell %]
[% PROCESS row cell = "component" %]
[% field_descs.bug_status FILTER html %]: |
[% display_value("bug_status", bug.bug_status) FILTER html %]
[%+ display_value("resolution", bug.resolution) FILTER html %]
|
[% PROCESS rightcell %]
[% field_descs.bug_severity FILTER html %]: |
[% display_value("bug_severity", bug.bug_severity) FILTER html %]
|
[% PROCESS rightcell %]
[% field_descs.priority FILTER html %]: |
[% bug.priority FILTER html %]
|
[% PROCESS rightcell %]
[% PROCESS row cell = "version" %]
[% PROCESS row cell = "target_milestone" IF Param('usetargetmilestone') %]
[% PROCESS row cell = "rep_platform" %]
[% PROCESS row cell = "op_sys" %]
[% IF bug.bug_file_loc %]
[% field_descs.bug_file_loc FILTER html %]: |
[% IF is_safe_url(bug.bug_file_loc) %]
[% bug.bug_file_loc FILTER html %]
[% ELSE %]
[% bug.bug_file_loc FILTER html %]
[% END %]
|
[% END %]
[% IF bug.see_also.size %]
[% field_descs.see_also FILTER html %]: |
[% FOREACH see_also = bug.see_also %]
[% see_also.name FILTER html %]
[% " " IF not loop.last() %]
[% END %]
|
[% END %]
[% IF Param("usestatuswhiteboard") %]
[% PROCESS row cell = "status_whiteboard" fullrow = 1 %]
[% END %]
[% field_counter = 0 %]
[% FOREACH field = Bugzilla.active_custom_fields %]
[% field_counter = field_counter + 1 %]
[%# Odd-numbered fields get an opening %]
[% '
' IF field_counter % 2 %]
[% PROCESS bug/field.html.tmpl value=bug.${field.name} editable=0 %]
[%# Even-numbered fields get a closing
%]
[% '
' IF !(field_counter % 2) %]
[% IF extra_field_item %]
[% field_counter = field_counter + 1 %]
[% '' IF field_counter % 2 %]
[% extra_field_item.header FILTER none %] |
[% extra_field_item.data FILTER none %] |
[% '
' IF !(field_counter % 2) %]
[% END %]
[% END %]
[%# And we have to finish the row if we ended on an odd number. %]
[% ' | | ' IF field_counter % 2 %]
[% IF (bug.dependson.size || bug.blocked.size) %]
[% PROCESS dependencies name = "dependson" %]
[% PROCESS dependencies name = "blocked" %]
[% END %]
[% IF user.is_timetracker %]
Time tracking: |
[% field_descs.estimated_time FILTER html %] |
[% field_descs.actual_time FILTER html %] |
[% field_descs.work_time FILTER html %] |
[% field_descs.remaining_time FILTER html %] |
[% field_descs.percentage_complete FILTER html %] |
Gain |
[% PROCESS formattimeunit time_unit = bug.estimated_time %]
|
[% PROCESS formattimeunit
time_unit=(bug.remaining_time + bug.actual_time) %]
|
[% PROCESS formattimeunit time_unit = bug.actual_time %] |
[% PROCESS formattimeunit time_unit = bug.remaining_time %]
|
[% PROCESS calculatepercentage act = bug.actual_time
rem = bug.remaining_time %]
|
[% PROCESS formattimeunit
time_unit=bug.estimated_time -
(bug.actual_time + bug.remaining_time) %]
|
|
[% END %]
[% IF Param("timetrackinggroup") && bug.deadline %]
[% PROCESS row cell="deadline" %]
[% END %]
[% IF bug.attachments.size %]
Attachments: |
[% IF bug.show_attachment_flags %]
Description |
Flags |
[% FOREACH attachment = bug.attachments %]
[% attachment.description FILTER html %]
[% " " IF not loop.last() %]
|
[% IF attachment.flags.size == 0 %]
none
[% ELSE %]
[% FOREACH flag = attachment.flags %]
[% flag.setter.nick FILTER html %]:
[%+ flag.type.name FILTER html FILTER no_break %][% flag.status %]
[% IF flag.status == "?" && flag.requestee %]
([% flag.requestee.nick FILTER html %])
[% END %][% ", " IF not loop.last() %]
[% END %]
[% END %]
|
[% END %]
[% ELSE %]
[% FOREACH attachment = bug.attachments %]
[% attachment.description FILTER html %]
[% " " IF not loop.last() %]
[% END %]
[% END %]
|
[% END %]
[% END %]
[% Hook.process("last_row", "bug/show-multiple.html.tmpl") %]
[% PROCESS bug/comments.html.tmpl
comments = bug.comments %]
[% END %]
[%###########################################################################%]
[%# Block for standard table rows #%]
[%###########################################################################%]
[% BLOCK row %]
[% field_descs.${cell} FILTER html %]: |
[% display_value(cell, bug.${cell}) FILTER html %] |
[% PROCESS rightcell IF !fullrow %]
[% fullrow = 0 %]
[% END %]
[%############################################################################%]
[%# Block for dependencies #%]
[%############################################################################%]
[% BLOCK dependencies %]
[% terms.Bug %] [%+ field_descs.${name} FILTER html %]: |
[% FOREACH depbug = bug.${name} %]
[% depbug FILTER bug_link(depbug) FILTER none %][% ", " IF not loop.last() %]
[% END %]
|
[% PROCESS rightcell %]
[% END %]
[%############################################################################%]
[%# Block for cells shown right of the table #%]
[%############################################################################%]
[% BLOCK rightcell %]
[% IF rightcells %]
[% name = rightcells.shift %]
[% IF name == "cc" %]
[% field_descs.cc FILTER html %]: |
[% FOREACH c = bug.cc %]
[% c FILTER email FILTER html %][% ", " IF not loop.last() %]
[% END %]
[% ELSIF name == "reporter" || name == "assigned_to"
|| name == "qa_contact" %]
| [% field_descs.${name} FILTER html %]: |
[% bug.${name}.identity FILTER email FILTER html %] |
[% ELSIF name == "flags" %]
Flags: |
[% FOREACH type = bug.flag_types %]
[% FOREACH flag = type.flags %]
[% flag.setter.nick FILTER html %]:
[%+ flag.type.name FILTER html FILTER no_break %][% flag.status %]
[%+ IF flag.status == "?" && flag.requestee %]
([% flag.requestee.nick FILTER html %])
[% END %]
[% END %]
[% END %]
|
[% ELSIF name != "" %]
[% field_descs.${name} FILTER html %]: |
[% display_value(name, bug.${name}) FILTER html %] |
[% ELSE %]
|
|
[% END %]
[% END %]
[% END %]