2008-12-15 15:53:33 +03:00
|
|
|
[%# The contents of this file are subject to the Mozilla Public
|
|
|
|
# License Version 1.1 (the "License"); you may not use this file
|
|
|
|
# except in compliance with the License. You may obtain a copy of
|
|
|
|
# the License at http://www.mozilla.org/MPL/
|
|
|
|
#
|
|
|
|
# Software distributed under the License is distributed on an "AS
|
|
|
|
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
|
|
# implied. See the License for the specific language governing
|
|
|
|
# rights and limitations under the License.
|
|
|
|
#
|
|
|
|
# The Original Code is the Bugzilla Bug Tracking System.
|
|
|
|
#
|
|
|
|
# The Initial Developer of the Original Code is Netscape Communications
|
|
|
|
# Corporation. Portions created by Netscape are
|
|
|
|
# Copyright (C) 1998 Netscape Communications Corporation. All
|
|
|
|
# Rights Reserved.
|
|
|
|
#
|
|
|
|
# Contributor(s): Terry Weissman <terry@mozilla.org>
|
|
|
|
# Gervase Markham <gerv@gerv.net>
|
|
|
|
# Toms Baugis <toms@myrealbox.com>
|
|
|
|
# Olav Vitters <olav@bkor.dhs.org>
|
|
|
|
# Max Kanat-Alexander <mkanat@bugzilla.org>
|
|
|
|
# Elliotte Martin <emartin@everythingsolved.com>
|
|
|
|
#%]
|
|
|
|
|
|
|
|
[% PROCESS global/header.html.tmpl
|
|
|
|
title = "Full Text $terms.Bug Listing"
|
|
|
|
h1 = ""
|
|
|
|
style_urls = ["skins/standard/show_multiple.css",
|
2011-10-28 20:16:56 +04:00
|
|
|
"skins/standard/buglist.css",
|
|
|
|
"skins/standard/comments.css"]
|
2008-12-15 15:53:33 +03:00
|
|
|
doc_section = "bug_page.html"
|
|
|
|
%]
|
2014-03-28 16:39:40 +04:00
|
|
|
|
2008-12-15 15:53:33 +03:00
|
|
|
[% PROCESS bug/time.html.tmpl %]
|
|
|
|
[% IF bugs.first %]
|
|
|
|
[% ids = [] %]
|
2014-05-07 15:51:35 +04:00
|
|
|
[% FOREACH bug = error_bugs %]
|
|
|
|
[% PROCESS bug_display error=1 %]
|
|
|
|
[% ids.push(bug.bug_id) %]
|
|
|
|
[% END %]
|
2008-12-15 15:53:33 +03:00
|
|
|
[% FOREACH bug = bugs %]
|
2014-05-07 15:51:35 +04:00
|
|
|
[% PROCESS bug_display error=0 %]
|
|
|
|
[% ids.push(bug.bug_id) %]
|
2008-12-15 15:53:33 +03:00
|
|
|
[% END %]
|
|
|
|
[% IF ids.size > 1 %]
|
|
|
|
<div class="bz_query_buttons">
|
|
|
|
<form method="post" action="buglist.cgi">
|
2014-03-28 16:44:00 +04:00
|
|
|
<input type="hidden" name="bug_id" value="[% ids.join(",") | html %]">
|
2008-12-15 15:53:33 +03:00
|
|
|
<input type="submit" id="short_format" value="Short Format">
|
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
[% END %]
|
|
|
|
[% ELSE %]
|
|
|
|
<p>
|
|
|
|
You'd have more luck if you gave me some [% terms.bug %] numbers.
|
|
|
|
</p>
|
|
|
|
[% END %]
|
|
|
|
|
|
|
|
[% PROCESS global/footer.html.tmpl %]
|
|
|
|
|
|
|
|
[%###########################################################################%]
|
|
|
|
[%# Block for an individual bug #%]
|
|
|
|
[%###########################################################################%]
|
|
|
|
|
|
|
|
[% BLOCK bug_display %]
|
|
|
|
<h1>
|
2014-03-28 16:44:00 +04:00
|
|
|
[% terms.Bug %] <a href="show_bug.cgi?id=[% bug.bug_id | html %]">[% bug.bug_id | html %]</a>
|
2014-08-01 21:13:45 +04:00
|
|
|
[% IF Bugzilla.get_field('alias').enabled AND bug.alias %]
|
2014-03-28 16:44:00 +04:00
|
|
|
(<a href="show_bug.cgi?id=[% bug.alias | url_quote %]">
|
|
|
|
[% bug.alias | html %]</a>)
|
2008-12-15 15:53:33 +03:00
|
|
|
[% END %]
|
|
|
|
</h1>
|
|
|
|
|
|
|
|
<table class="bugfields">
|
2014-05-07 15:51:35 +04:00
|
|
|
[% IF error %]
|
2008-12-15 15:53:33 +03:00
|
|
|
<tr>
|
|
|
|
<td class="error">
|
|
|
|
[% IF bug.error == "InvalidBugId" %]
|
2014-03-28 16:44:00 +04:00
|
|
|
'[%+ bug.bug_id | html %]' is not a valid [% terms.bug %] number
|
2014-08-01 21:13:45 +04:00
|
|
|
[%- IF Bugzilla.get_field('alias').enabled %] nor a known [% terms.bug %] alias[% END %].
|
2008-12-15 15:53:33 +03:00
|
|
|
[% ELSIF bug.error == "NotPermitted" %]
|
|
|
|
You are not allowed to view this [% terms.bug %].
|
|
|
|
[% ELSIF bug.error == "NotFound" %]
|
|
|
|
This [% terms.bug %] cannot be found.
|
|
|
|
[% ELSE %]
|
2014-03-28 16:44:00 +04:00
|
|
|
[%+ bug.error | html %]
|
2008-12-15 15:53:33 +03:00
|
|
|
[% END %]
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
[% ELSE %]
|
|
|
|
[%# The rightcell block (also called by the row block) automatically shows
|
|
|
|
# the fields from rightcells %]
|
|
|
|
[% rightcells = ['reporter', 'assigned_to'] %]
|
2014-08-01 21:13:45 +04:00
|
|
|
[% IF Bugzilla.get_field('qa_contact').enabled %]
|
2008-12-15 15:53:33 +03:00
|
|
|
[% rightcells.push('qa_contact') %]
|
|
|
|
[% END %]
|
|
|
|
[% rightcells.push('') %]
|
|
|
|
[% IF bug.cc %]
|
|
|
|
[% rightcells.push('cc') %]
|
|
|
|
[% END %]
|
2014-07-31 20:52:24 +04:00
|
|
|
[% IF bug.get_string('keywords') %]
|
2008-12-15 15:53:33 +03:00
|
|
|
[% 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 %]
|
|
|
|
|
|
|
|
<tr>
|
2014-03-28 16:44:00 +04:00
|
|
|
<th>[% field_descs.product | html %]:</th>
|
2008-12-15 15:53:33 +03:00
|
|
|
<td>
|
2014-08-01 21:13:45 +04:00
|
|
|
[% IF Bugzilla.get_field('classification').enabled %]
|
2014-05-07 15:51:35 +04:00
|
|
|
[% bug.classification_obj.name | html %]/
|
|
|
|
[%- END -%]
|
|
|
|
[%- bug.product_obj.name | html %]
|
2008-12-15 15:53:33 +03:00
|
|
|
</td>
|
|
|
|
|
|
|
|
[% PROCESS rightcell %]
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
[% PROCESS row cell = "component" %]
|
|
|
|
|
|
|
|
<tr>
|
2014-03-28 16:44:00 +04:00
|
|
|
<th>[% field_descs.bug_status | html %]:</th>
|
2008-12-15 15:53:33 +03:00
|
|
|
<td>
|
2014-03-28 16:44:00 +04:00
|
|
|
[% bug.bug_status_obj.name | html %]
|
|
|
|
[%+ bug.resolution_obj.name | html %]
|
2008-12-15 15:53:33 +03:00
|
|
|
</td>
|
|
|
|
|
|
|
|
[% PROCESS rightcell %]
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
2014-03-28 16:44:00 +04:00
|
|
|
<th>[% field_descs.bug_severity | html %]:</th>
|
|
|
|
<td class="bz_[% bug.bug_severity_obj.name | css_class_quote -%]">
|
|
|
|
[% bug.bug_severity_obj.name | html %]
|
2008-12-15 15:53:33 +03:00
|
|
|
</td>
|
|
|
|
|
|
|
|
[% PROCESS rightcell %]
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
2014-03-28 16:44:00 +04:00
|
|
|
<th>[% field_descs.priority | html %]:</th>
|
|
|
|
<td class="bz_[% bug.priority_obj.name | css_class_quote -%]">
|
|
|
|
[% bug.priority_obj.name | html %]
|
2008-12-15 15:53:33 +03:00
|
|
|
</td>
|
|
|
|
|
|
|
|
[% PROCESS rightcell %]
|
|
|
|
</tr>
|
|
|
|
|
2014-03-28 16:39:40 +04:00
|
|
|
[% PROCESS row obj=1 cell="version" %]
|
2014-08-01 21:13:45 +04:00
|
|
|
[% PROCESS row obj=1 cell="target_milestone" IF Bugzilla.get_field('target_milestone').enabled %]
|
|
|
|
[% PROCESS row obj=1 cell="rep_platform" IF Bugzilla.get_field('rep_platform').enabled %]
|
|
|
|
[% PROCESS row obj=1 cell="op_sys" IF Bugzilla.get_field('op_sys').enabled %]
|
2014-03-28 16:39:40 +04:00
|
|
|
[% obj=0 %]
|
2008-12-15 15:53:33 +03:00
|
|
|
|
|
|
|
[% IF bug.bug_file_loc %]
|
|
|
|
<tr>
|
2014-03-28 16:44:00 +04:00
|
|
|
<th>[% field_descs.bug_file_loc | html %]:</th>
|
2008-12-15 15:53:33 +03:00
|
|
|
<td colspan="3">
|
2011-02-04 18:47:14 +03:00
|
|
|
[% IF is_safe_url(bug.bug_file_loc) %]
|
2014-03-28 16:44:00 +04:00
|
|
|
<a href="[% bug.bug_file_loc | html %]">
|
|
|
|
[% bug.bug_file_loc | html %]</a>
|
2011-02-04 18:47:14 +03:00
|
|
|
[% ELSE %]
|
2014-03-28 16:44:00 +04:00
|
|
|
[% bug.bug_file_loc | html %]
|
2008-12-15 15:53:33 +03:00
|
|
|
[% END %]
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
[% END %]
|
|
|
|
|
2014-08-01 21:13:45 +04:00
|
|
|
[% IF Bugzilla.get_field('status_whiteboard').enabled %]
|
2008-12-15 15:53:33 +03:00
|
|
|
[% PROCESS row cell = "status_whiteboard" fullrow = 1 %]
|
|
|
|
[% END %]
|
|
|
|
|
|
|
|
[% field_counter = 0 %]
|
|
|
|
[% FOREACH field = Bugzilla.active_custom_fields %]
|
2014-03-28 16:39:40 +04:00
|
|
|
[% field_counter = field_counter + 1 %]
|
|
|
|
[%# Odd-numbered fields get an opening <tr> %]
|
|
|
|
[% '<tr>' IF field_counter % 2 %]
|
|
|
|
[% PROCESS bug/field.html.tmpl value=bug.${field.name} editable=0 %]
|
|
|
|
[%# Even-numbered fields get a closing <tr> %]
|
|
|
|
[% '</tr>' IF !(field_counter % 2) %]
|
2008-12-15 15:53:33 +03:00
|
|
|
[% END %]
|
|
|
|
[%# And we have to finish the row if we ended on an odd number. %]
|
|
|
|
[% '<th></th><td></td></tr>' IF field_counter % 2 %]
|
|
|
|
|
|
|
|
[% IF (bug.dependson.size || bug.blocked.size) %]
|
|
|
|
[% PROCESS dependencies name = "dependson" %]
|
|
|
|
[% PROCESS dependencies name = "blocked" %]
|
|
|
|
[% END %]
|
|
|
|
|
2010-05-15 00:02:34 +04:00
|
|
|
[% IF user.is_timetracker %]
|
2008-12-15 15:53:33 +03:00
|
|
|
<tr>
|
|
|
|
<th>Time tracking:</th>
|
|
|
|
<td colspan="3">
|
|
|
|
<table class="timetracking">
|
|
|
|
<tr>
|
2014-03-28 16:44:00 +04:00
|
|
|
<th>[% field_descs.estimated_time | html %]</th>
|
|
|
|
<th>[% field_descs.actual_time | html %]</th>
|
|
|
|
<th>[% field_descs.work_time | html %]</th>
|
|
|
|
<th>[% field_descs.remaining_time | html %]</th>
|
|
|
|
<th>[% field_descs.percentage_complete | html %]</th>
|
2008-12-15 15:53:33 +03:00
|
|
|
<th>Gain</th>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
2014-03-28 16:44:00 +04:00
|
|
|
<td>[% PROCESS formattimeunit time_unit=bug.estimated_time %]</td>
|
|
|
|
<td>[% PROCESS formattimeunit time_unit=(bug.remaining_time+bug.actual_time) %]</td>
|
|
|
|
<td>[% PROCESS formattimeunit time_unit=bug.actual_time %]</td>
|
|
|
|
<td>[% PROCESS formattimeunit time_unit=bug.remaining_time %]</td>
|
|
|
|
<td>[% PROCESS calculatepercentage act=bug.actual_time rem=bug.remaining_time %]</td>
|
|
|
|
<td>[% PROCESS formattimeunit time_unit=bug.estimated_time-(bug.actual_time+bug.remaining_time) %]</td>
|
2008-12-15 15:53:33 +03:00
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
[% PROCESS row cell="deadline" %]
|
|
|
|
[% END %]
|
|
|
|
|
|
|
|
[% IF bug.attachments.size %]
|
|
|
|
<tr>
|
|
|
|
<th>Attachments:</th>
|
|
|
|
<td colspan="3">
|
|
|
|
[% IF bug.show_attachment_flags %]
|
|
|
|
<table>
|
|
|
|
<tr>
|
|
|
|
<th>Description</th>
|
|
|
|
<th>Flags</th>
|
|
|
|
</tr>
|
|
|
|
[% FOREACH attachment = bug.attachments %]
|
|
|
|
<tr>
|
|
|
|
<td>
|
|
|
|
<a href="attachment.cgi?id=[% attachment.id %]">
|
2014-03-28 16:44:00 +04:00
|
|
|
[% attachment.description | html %]
|
2008-12-15 15:53:33 +03:00
|
|
|
</a>[% "<br>" IF not loop.last() %]
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
[% IF attachment.flags.size == 0 %]
|
|
|
|
<i>none</i>
|
|
|
|
[% ELSE %]
|
|
|
|
[% FOREACH flag = attachment.flags %]
|
2014-03-28 16:44:00 +04:00
|
|
|
[% flag.setter.nick | html %]:
|
|
|
|
[%+ flag.type.name | html | no_break %][% flag.status %]
|
2008-12-15 15:53:33 +03:00
|
|
|
[% IF flag.status == "?" && flag.requestee %]
|
2014-03-28 16:44:00 +04:00
|
|
|
([% flag.requestee.nick | html %])
|
2008-12-15 15:53:33 +03:00
|
|
|
[% END %][% ", " IF not loop.last() %]
|
|
|
|
[% END %]
|
|
|
|
[% END %]
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
[% END %]
|
|
|
|
</table>
|
|
|
|
[% ELSE %]
|
|
|
|
[% FOREACH attachment = bug.attachments %]
|
|
|
|
<a href="attachment.cgi?id=[% attachment.id %]">
|
2014-03-28 16:44:00 +04:00
|
|
|
[% attachment.description | html %]
|
2008-12-15 15:53:33 +03:00
|
|
|
</a>[% "<br>" IF not loop.last() %]
|
|
|
|
[% END %]
|
|
|
|
[% END %]
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
[% END %]
|
|
|
|
[% END %]
|
2014-03-28 16:39:40 +04:00
|
|
|
|
2008-12-15 15:53:33 +03:00
|
|
|
[% Hook.process("last_row", "bug/show-multiple.html.tmpl") %]
|
|
|
|
</table>
|
|
|
|
|
2014-03-28 16:39:40 +04:00
|
|
|
<br />
|
2008-12-15 15:53:33 +03:00
|
|
|
|
|
|
|
[% PROCESS bug/comments.html.tmpl
|
2010-05-15 00:02:34 +04:00
|
|
|
comments = bug.comments %]
|
2008-12-15 15:53:33 +03:00
|
|
|
|
|
|
|
[% END %]
|
|
|
|
|
|
|
|
|
|
|
|
[%###########################################################################%]
|
|
|
|
[%# Block for standard table rows #%]
|
|
|
|
[%###########################################################################%]
|
|
|
|
|
|
|
|
[% BLOCK row %]
|
|
|
|
<tr>
|
2014-03-28 16:44:00 +04:00
|
|
|
<th>[% field_descs.${cell} | html %]:</th>
|
2014-03-28 16:39:40 +04:00
|
|
|
[% IF obj %]
|
|
|
|
[% SET cell = cell _ "_obj" %]
|
2014-03-28 16:44:00 +04:00
|
|
|
<td[% " colspan=3" IF fullrow %]>[% bug.$cell.name | html %]</td>
|
2014-03-28 16:39:40 +04:00
|
|
|
[% ELSE %]
|
2014-03-28 16:44:00 +04:00
|
|
|
<td[% " colspan=3" IF fullrow %]>[% bug.$cell | html %]</td>
|
2014-03-28 16:39:40 +04:00
|
|
|
[% END %]
|
2008-12-15 15:53:33 +03:00
|
|
|
[% PROCESS rightcell IF !fullrow %]
|
|
|
|
</tr>
|
|
|
|
[% fullrow = 0 %]
|
|
|
|
[% END %]
|
|
|
|
|
|
|
|
[%############################################################################%]
|
|
|
|
[%# Block for dependencies #%]
|
|
|
|
[%############################################################################%]
|
|
|
|
|
|
|
|
[% BLOCK dependencies %]
|
|
|
|
<tr>
|
2014-03-28 16:44:00 +04:00
|
|
|
<th>[% terms.Bug %] [%+ field_descs.${name} | html %]:</th>
|
2008-12-15 15:53:33 +03:00
|
|
|
<td>
|
|
|
|
[% FOREACH depbug = bug.${name} %]
|
2014-03-28 16:44:00 +04:00
|
|
|
[% depbug | bug_link(depbug) | none %][% ", " IF not loop.last() %]
|
2008-12-15 15:53:33 +03:00
|
|
|
[% END %]
|
|
|
|
</td>
|
|
|
|
|
|
|
|
[% PROCESS rightcell %]
|
|
|
|
</tr>
|
|
|
|
[% END %]
|
|
|
|
|
|
|
|
[%############################################################################%]
|
|
|
|
[%# Block for cells shown right of the table #%]
|
|
|
|
[%############################################################################%]
|
|
|
|
|
|
|
|
[% BLOCK rightcell %]
|
|
|
|
[% IF rightcells %]
|
|
|
|
[% name = rightcells.shift %]
|
|
|
|
[% IF name == "cc" %]
|
2014-03-28 16:44:00 +04:00
|
|
|
<th class="rightcell">[% field_descs.cc | html %]:</th>
|
2008-12-15 15:53:33 +03:00
|
|
|
<td>
|
|
|
|
[% FOREACH c = bug.cc %]
|
2014-03-28 16:44:00 +04:00
|
|
|
[% c | email | html %][% ", " IF not loop.last() %]
|
2008-12-15 15:53:33 +03:00
|
|
|
[% END %]
|
2014-03-28 16:44:00 +04:00
|
|
|
[% ELSIF name == "reporter" || name == "assigned_to" || name == "qa_contact" %]
|
|
|
|
<th class="rightcell">[% field_descs.${name} | html %]:</th>
|
|
|
|
<td>[% bug.${name}.identity | email | html %]</td>
|
2008-12-15 15:53:33 +03:00
|
|
|
[% ELSIF name == "flags" %]
|
|
|
|
<th class="rightcell">Flags:</th>
|
|
|
|
<td>
|
|
|
|
[% FOREACH type = bug.flag_types %]
|
|
|
|
[% FOREACH flag = type.flags %]
|
2014-03-28 16:44:00 +04:00
|
|
|
[% flag.setter.nick | html %]:
|
|
|
|
[%+ flag.type.name | html | no_break %][% flag.status %]
|
|
|
|
[%+ IF flag.status == "?" && flag.requestee %]
|
|
|
|
([% flag.requestee.nick | html %])
|
|
|
|
[% END %]<br>
|
2008-12-15 15:53:33 +03:00
|
|
|
[% END %]
|
|
|
|
[% END %]
|
|
|
|
</td>
|
2014-07-31 20:52:24 +04:00
|
|
|
[% ELSIF name == "keywords" %]
|
|
|
|
<th class="rightcell">[% field_descs.keywords | html %]:</th>
|
|
|
|
<td>[% bug.get_string('keywords') | html %]</td>
|
2008-12-15 15:53:33 +03:00
|
|
|
[% ELSIF name != "" %]
|
2014-03-28 16:44:00 +04:00
|
|
|
<th class="rightcell">[% field_descs.${name} | html %]:</th>
|
|
|
|
<td>[% bug.${name} | html %]</td>
|
2008-12-15 15:53:33 +03:00
|
|
|
[% ELSE %]
|
|
|
|
<td> </td>
|
|
|
|
<td> </td>
|
|
|
|
[% END %]
|
|
|
|
[% END %]
|
|
|
|
[% END %]
|