[%# 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): Gervase Markham # Vaskin Kissoyan # Max Kanat-Alexander # Frédéric Buclin # Olav Vitters # Guy Pyrzak #%] [% PROCESS global/variables.none.tmpl %] [% PROCESS "global/field-descs.none.tmpl" %] [% PROCESS bug/time.html.tmpl %]
[% PROCESS section_title %] [%# 1st Column %] [%# 2nd Column %]
[%# *** ID, product, component, status, resolution, Hardware, and OS *** %] [% PROCESS section_status %] [% PROCESS section_spacer %] [% PROCESS section_details1 %] [% PROCESS section_spacer %] [%# *** severity, priority, version and milestone *** %] [% PROCESS section_details2 %] [%# *** assigned to and qa contact *** %] [% PROCESS section_people %] [% PROCESS section_spacer %] [% PROCESS section_url_keyword_whiteboard %] [% PROCESS section_spacer %] [%# *** Dependencies *** %] [% PROCESS section_dependson_blocks %]
 
[%# *** Reported and modified dates *** %] [% PROCESS section_dates %] [% PROCESS section_cclist %] [% PROCESS section_spacer %] [% PROCESS section_customfields %] [% PROCESS section_spacer %] [% PROCESS section_flags %]

[% PROCESS section_restrict_visibility %] [% IF user.in_group(Param('timetrackinggroup')) %]
[% PROCESS section_timetracking %] [% END %] [%# *** Attachments *** %] [% PROCESS attachment/list.html.tmpl attachments = bug.attachments bugid = bug.bug_id num_attachment_flag_types = bug.num_attachment_flag_types show_attachment_flags = bug.show_attachment_flags %] [%# *** Comments Groups *** %]
[% IF user.id %] : [% IF Param("insidergroup") && user.in_group(Param("insidergroup")) %] [% END %]
[% INCLUDE global/textarea.html.tmpl name = 'comment' id = 'comment' minrows = 10 maxrows = 25 cols = constants.COMMENT_COLS %]
[% IF bug.user.canmove %] [% END %]
[% ELSE %]
Note

You need to log in before you can comment on or make changes to this [% terms.bug %].

[% END %] [%# *** Additional Comments *** %]
[% PROCESS bug/comments.html.tmpl comments = bug.longdescs mode = user.id ? "edit" : "show" %]
[% IF use_keywords %] [% PROCESS "bug/keyword-chooser.html.tmpl" sel_keywords = bug.keywords.split(', ') %] [% END %] [%############################################################################%] [%# Block for the Title (alias and short desc) #%] [%############################################################################%] [% BLOCK section_title %] [%# That's the main table, which contains all editable fields. %]
[% IF Param('useclassification') && bug.classification_id != 1 %] [[% bug.classification FILTER html %]] [% END %] [% terms.Bug %] [% bug.bug_id FILTER html %] - [% IF Param("usebugaliases") %] [% IF bug.alias != "" %] ([% bug.alias FILTER html %]) [% END %] [% END %] [% bug.short_desc FILTER html %] [% IF bug.check_can_change_field('short_desc', 0, 1) || bug.check_can_change_field('alias', 0, 1) %] (edit) [% END %] [% IF Param("usebugaliases") %] [% IF bug.check_can_change_field('alias', 0, 1) %] :  [% ELSIF bug.alias %] ( [% END %] [% PROCESS input inputname => "alias" size => "20" maxlength => "20" no_td => 1 %][% ") " IF NOT bug.check_can_change_field('alias', 0, 1) && bug.alias %] [% END %] [%# *** Summary *** %] :  [% PROCESS input inputname => "short_desc" size => "60" colspan => 2 maxlength => 255 spellcheck => "true" no_td => 1 %]
[% END %] [%############################################################################%] [%# Block for the first table in the "Details" section #%] [%############################################################################%] [% BLOCK section_details1 %] [%#############%] [%# PRODUCT #%] [%#############%] : [% PROCESS select selname => "product" %] [%###############%] [%# Component #%] [%###############%] [% PROCESS select selname => "component" %] : [% PROCESS select selname => "version" %] [%############%] [%# PLATFORM #%] [%############%] : [% PROCESS select selname => "rep_platform" no_td=> 1 %] [%+ PROCESS select selname => "op_sys" no_td=> 1 %] [% END %] [%############################################################################%] [%# Block for the status section #%] [%############################################################################%] [% BLOCK section_status %] Status: [% PROCESS bug/knob.html.tmpl %] [% END %] [%############################################################################%] [%# Block for the second table in the "Details" section #%] [%############################################################################%] [% BLOCK section_details2 %] [%###############################################################%] [%# Importance (priority, severity and votes) #%] [%###############################################################%] : [% PROCESS select selname => "priority" no_td=>1 %] [% PROCESS select selname = "bug_severity" no_td=>1 %] [% IF bug.use_votes %] [% IF bug.votes %] with [% bug.votes %] [% IF bug.votes == 1 %] vote [% ELSE %] votes [% END %] [% END %] (vote) [% END %] [% IF Param("usetargetmilestone") && bug.target_milestone %] : [% PROCESS select selname = "target_milestone" %] [% END %] [% END %] [%############################################################################%] [%# Block for the table in the "People" section #%] [%############################################################################%] [% BLOCK section_people %] Assigned To: [% IF bug.check_can_change_field("assigned_to", 0, 1) %]
[% INCLUDE user_identity user=> bug.assigned_to %] (edit)
[% INCLUDE global/userselect.html.tmpl id => "assigned_to" name => "assigned_to" value => bug.assigned_to.login size => 30 %]
[% ELSE %] [% INCLUDE user_identity user => bug.assigned_to %] [% END %] [% IF Param('useqacontact') %] : [% IF bug.check_can_change_field("qa_contact", 0, 1) %] [% IF bug.qa_contact != "" %]
[% INCLUDE user_identity user=> bug.qa_contact %] (edit)
[% END %]
[% INCLUDE global/userselect.html.tmpl id => "qa_contact" name => "qa_contact" value => bug.qa_contact.login size => 30 emptyok => 1 %]
[% ELSE %] [% INCLUDE user_identity user => bug.qa_contact %] [% END %] [% END %] [% END %] [%############################################################################%] [%# Block for URL Keyword and Whiteboard #%] [%############################################################################%] [% BLOCK section_url_keyword_whiteboard %] [%# *** URL Whiteboard Keywords *** %] : [% IF bug.check_can_change_field("bug_file_loc", 0, 1) %] [% IF bug.bug_file_loc AND NOT bug.bug_file_loc.match("^(javascript|data)") %] [% bug.bug_file_loc FILTER html%] [% ELSE %] [% bug.bug_file_loc FILTER html %] [% END %] (edit) [% END %] [% url_output = PROCESS input no_td=1 inputname => "bug_file_loc" size => "40" colspan => 2 %] [% IF NOT bug.check_can_change_field("bug_file_loc", 0, 1) %] [% url_output FILTER none %] [% ELSE %] [% url_output FILTER none %] [% END %] [% IF bug.check_can_change_field("bug_file_loc", 0, 1) %] [% END %] [% IF Param('usestatuswhiteboard') %] : [% PROCESS input inputname => "status_whiteboard" size => "40" colspan => 2 %] [% END %] [% IF use_keywords %] : [% PROCESS input inputname => "keywords" size => 40 colspan => 2 value => bug.keywords.join(', ') onfocus => "this.chooser.open()" %] [% END %] [% END %] [%############################################################################%] [%# Block for Depends On / Blocks #%] [%############################################################################%] [% BLOCK section_dependson_blocks %] [% PROCESS dependencies dep = { title => "Depends on", fieldname => "dependson" } %] [% PROCESS dependencies accesskey = "b" dep = { title => "Blocks", fieldname => "blocked" } %]   Show dependency tree [% IF Param('webdotbase') %] / graph [% END %] [% END %] [%############################################################################%] [%# Block for Restricting Visibility #%] [%############################################################################%] [% BLOCK section_restrict_visibility %] [% RETURN UNLESS bug.groups.size %] [% IF inagroup %] [% END %]
[% inallgroups = 1 %] [% inagroup = 0 %] [% FOREACH group = bug.groups %] [% SET inallgroups = 0 IF NOT group.ingroup %] [% SET inagroup = 1 IF group.ison %] [% NEXT IF group.mandatory %] [% IF NOT emitted_description %] [% emitted_description = 1 %]
Only users in all of the selected groups can view this [% terms.bug %]:
(Unchecking all boxes makes this a more public [% terms.bug %].)
[% END %] [% IF group.ingroup %] [% END %]
[% END %] [% IF NOT inallgroups %] Only members of a group can change the visibility of [% terms.abug %] for that group.
[% END %]
Users in the roles selected below can always view this [% terms.bug %]:
(The assignee [% IF (Param('useqacontact')) %] and QA contact [% END %] can always see [% terms.abug %], and this section does not take effect unless the [% terms.bug %] is restricted to at least one group.)
[% user_can_edit_accessible = bug.check_can_change_field("reporter_accessible", 0, 1) %] [% IF user_can_edit_accessible %] [% END %]
[% user_can_edit_accessible = bug.check_can_change_field("cclist_accessible", 0, 1) %] [% IF user_can_edit_accessible %] [% END %]
[% END %] [%############################################################################%] [%# Block for Dates #%] [%############################################################################%] [% BLOCK section_dates %] Reported: [% bug.creation_ts FILTER time %] by [% INCLUDE user_identity user => bug.reporter %] Modified: [% bug.delta_ts FILTER time FILTER replace(':\d\d$', '') FILTER replace(':\d\d ', ' ')%] ([%# terms.Bug %]History) [% END %] [%############################################################################%] [%# Block for CC LIST #%] [%############################################################################%] [% BLOCK section_cclist %] [% IF user.id %] [% IF user.id %] [% IF NOT bug.cc || NOT bug.cc.contains(user.login) %] [% has_role = bug.user.isreporter || bug.assigned_to.id == user.id || (Param('useqacontact') && bug.qa_contact && bug.qa_contact.id == user.id) %]
[% END %] [% END %] [% bug.cc.size || 0 FILTER html %] [% IF bug.cc.size == 1 %] user [% ELSE %] users [% END %] [% IF user.id %] [% IF bug.cc.contains( user.email ) %] including you ([% INCLUDE user_identity user=> user FILTER collapse %]) [% END %] [% END %] (edit)
[% INCLUDE global/userselect.html.tmpl id => "newcc" name => "newcc" value => "" size => 30 multiple => 5 %]
[% IF bug.cc %] [% IF user.id %]
[%%]
[% END %] [% END %]
[% END %] [% END %] [%############################################################################%] [%# Block for FLAGS #%] [%############################################################################%] [% BLOCK section_flags %] [%# *** Flags *** %] [% show_bug_flags = 0 %] [% FOREACH type = bug.flag_types %] [% IF (type.flags && type.flags.size > 0) || (user.id && type.is_active) %] [% show_bug_flags = 1 %] [% LAST %] [% END %] [% END %] [% IF show_bug_flags %] [% IF user.id %] [% IF bug.flag_types.size > 0 %] [% PROCESS "flag/list.html.tmpl" flag_no_header = 1 flag_types = bug.flag_types any_flags_requesteeble = bug.any_flags_requesteeble %] [% END %] [% ELSE %] [% FOREACH type = bug.flag_types %] [% FOREACH flag = type.flags %] [% flag.setter.nick FILTER html %]: [%+ type.name FILTER html FILTER no_break %][% flag.status %] [%+ IF flag.requestee %] ([% flag.requestee.nick FILTER html %]) [% END %]
[% END %] [% END %] [% END %] [% END %] [% END %] [%############################################################################%] [%# Block for Custom Fields #%] [%############################################################################%] [% BLOCK section_customfields %] [%# *** Custom Fields *** %] [% USE Bugzilla %] [% FOREACH field = Bugzilla.active_custom_fields %] [% PROCESS bug/field.html.tmpl value=bug.${field.name} editable = bug.check_can_change_field(field.name, 0, 1) value_span = 2 %] [% END %] [% END %] [%############################################################################%] [%# Block for Section Spacer #%] [%############################################################################%] [% BLOCK section_spacer %] [% END %] [%############################################################################%] [%# Block for dependencies #%] [%############################################################################%] [% BLOCK dependencies %] : [% IF bug.check_can_change_field(dep.fieldname, 0, 1) %] [% END %] [% FOREACH depbug = bug.${dep.fieldname} %] [% depbug FILTER bug_link(depbug) FILTER none %][% " " %] [% END %] [% IF bug.check_can_change_field(dep.fieldname, 0, 1) %] (edit) [% END %] [% accesskey = undef %] [% END %] [%############################################################################%] [%# Block for Time Tracking Group #%] [%############################################################################%] [% BLOCK section_timetracking %]
Current Est. %Complete Gain
[% PROCESS formattimeunit time_unit=(bug.actual_time + bug.remaining_time) %] [% PROCESS formattimeunit time_unit=bug.actual_time %] + [% PROCESS calculatepercentage act=bug.actual_time rem=bug.remaining_time %] [% PROCESS formattimeunit time_unit=bug.estimated_time - (bug.actual_time + bug.remaining_time) %]
(YYYY-MM-DD)
Summarize time (including time for [% terms.bugs %] blocking this [% terms.bug %])
[% END %] [%############################################################################%] [%# Block for SELECT fields #%] [%############################################################################%] [% BLOCK select %] [% IF NOT no_td %] [% END %] [% IF bug.check_can_change_field(selname, 0, 1) AND bug.choices.${selname}.size > 1 %] [% ELSE %] [% bug.${selname} FILTER html %] [% END %] [% IF NOT no_td %] [% END %] [% no_td = 0 %] [% END %] [%############################################################################%] [%# Block for INPUT fields #%] [%############################################################################%] [% BLOCK input %] [% IF no_td != 1 %] [% END %] [% val = value ? value : bug.$inputname %] [% IF bug.check_can_change_field(inputname, 0, 1) %] [% ELSE %] [% IF size && val.length > size %] [% val FILTER truncate(size) FILTER html %] [% ELSE %] [% val FILTER html %] [% END %] [% END %] [% IF no_td != 1 %] [% END %] [% no_td = 0 %] [% maxlength = 0 %] [% colspan = 0 %] [% size = 0 %] [% value = undef %] [% onfocus = undef %] [% spellcheck = undef %] [% END %] [%############################################################################%] [%# Block for user identities. Wraps the information inside of an hCard. #%] [%############################################################################%] [% BLOCK user_identity %] [% FILTER collapse %] [% IF user.name %] [% ELSE %] [% END %] [% END %] [% END %]