[%# 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 bug/time.html.tmpl %]
[%############################################################################%]
[%# Block for the Title (alias and short desc) #%]
[%############################################################################%]
[% BLOCK section_title %]
[%# That's the main table, which contains all editable fields. %]
[% PROCESS commit_button id="_top"%]
[%-# %][% terms.Bug %] [% bug.bug_id FILTER html %]
[%-# %] -
[% IF bug.alias != "" %]
([% bug.alias FILTER html %])
[% END %]
[% bug.short_desc FILTER quoteUrls(bug) %]
[% IF bug.check_can_change_field('short_desc', 0, 1) ||
bug.check_can_change_field('alias', 0, 1) %]
(edit)
[% END %]
[% IF bug.check_can_change_field('alias', 0, 1) %]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.alias
editable = 1
%]
[% ELSIF bug.alias %]
(
[% ELSE %]
[% END %]
[% PROCESS input inputname => "alias"
size => "20"
maxlength => "20"
no_td => 1
%][% ")" IF NOT bug.check_can_change_field('alias', 0, 1)
&& bug.alias %]
[%# *** Summary *** %]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.short_desc
editable = 1
accesskey = "s"
%]
[% END %]
[%############################################################################%]
[%# Block for the first table in the "Details" section #%]
[%############################################################################%]
[% BLOCK section_details1 %]
[%#############%]
[%# PRODUCT #%]
[%#############%]
[% INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.product,
override_legal_values = bug.choices.product
desc_url = 'describecomponents.cgi', value = bug.product
editable = bug.check_can_change_field('product', 0, 1) %]
[%# Classification is here so that it can be used in value controllers
# and visibility controllers. It comes after product because
# it uses some javascript that depends on the existence of the
# product field.
#%]
[% INCLUDE bug/field.html.tmpl
bug = bug field = bug_fields.classification
override_legal_values = bug.choices.classification
value = bug.classification
editable = bug.check_can_change_field('product', 0, 1) %]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.
rep_platform editable = 1
accesskey = "h"
%]
[% INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.rep_platform,
no_tds = 1, value = bug.rep_platform
editable = bug.check_can_change_field('rep_platform', 0, 1) %]
[%+ INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.op_sys,
no_tds = 1, value = bug.op_sys
editable = bug.check_can_change_field('op_sys', 0, 1) %]
[% END %]
[%############################################################################%]
[%# Block for the status section #%]
[%############################################################################%]
[% BLOCK section_status %]
[% display_value("bug_status", bug.bug_status) FILTER html %]
[% IF bug.resolution %]
[%+ display_value("resolution", bug.resolution) FILTER html %]
[% IF bug.dup_id %]
of [% "${terms.bug} ${bug.dup_id}" FILTER bug_link(bug.dup_id) FILTER none %]
[% END %]
[% END %]
[% IF bug.user.canedit || bug.user.isreporter %]
(edit)
[% END %]
[% END %]
[%############################################################################%]
[%# Block for the second table in the "Details" section #%]
[%############################################################################%]
[% BLOCK section_details2 %]
[%###############################################################%]
[%# Importance (priority and severity) #%]
[%###############################################################%]
:
[% INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.priority,
no_tds = 1, value = bug.priority
editable = bug.check_can_change_field('priority', 0, 1) %]
[%+ INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.bug_severity,
no_tds = 1, value = bug.bug_severity
editable = bug.check_can_change_field('bug_severity', 0, 1) %]
[% Hook.process('after_importance', 'bug/edit.html.tmpl') %]
[% IF Param("usetargetmilestone") && bug.target_milestone %]
:
[% PROCESS select selname = "target_milestone" %]
[% END %]
[% IF Param("timetrackinggroup") && bug.deadline %]
[% INCLUDE bug/field.html.tmpl field = bug_fields.deadline, value = bug.deadline, editable = 0 %]
[% END %]
[% END %]
[%############################################################################%]
[%# Block for the table in the "People" section #%]
[%############################################################################%]
[% BLOCK section_people %]
[% IF bug.check_can_change_field("assigned_to", 0, 1) %]
[% INCLUDE global/user.html.tmpl who = bug.assigned_to %]
(edit)
[% IF bug.assigned_to.id != user.id %]
(take)
[% END %]
[% INCLUDE global/userselect.html.tmpl
id => "assigned_to"
name => "assigned_to"
value => bug.assigned_to.login
classes => ["bz_userfield"]
size => 30
%]
[% ELSE %]
[% INCLUDE global/user.html.tmpl who = bug.assigned_to %]
[% END %]
[% IF Param('useqacontact') %]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.qa_contact
editable = 1
accesskey = "q"
%]
[% IF bug.check_can_change_field("qa_contact", 0, 1) %]
[% INCLUDE global/user.html.tmpl who = bug.qa_contact %]
(edit)
[% IF bug.qa_contact.id != user.id %]
(take)
[% END %]
[% INCLUDE global/userselect.html.tmpl
id => "qa_contact"
name => "qa_contact"
value => bug.qa_contact.login
size => 30
classes => ["bz_userfield"]
emptyok => 1
%]
[% ELSE %]
[% INCLUDE global/user.html.tmpl who = bug.qa_contact %]
[% END %]
[% END %]
[% END %]
[%############################################################################%]
[%# Block for URL Keyword and Whiteboard #%]
[%############################################################################%]
[% BLOCK section_url_keyword_whiteboard %]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.bug_file_loc
editable = 1
accesskey = "u"
%]
[% IF bug.check_can_change_field("bug_file_loc", 0, 1) %]
[% IF is_safe_url(bug.bug_file_loc) %]
[% bug.bug_file_loc FILTER truncate(40) 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)
AND is_safe_url(bug.bug_file_loc) %]
[% 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') %]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.status_whiteboard
editable = 1
accesskey = "w"
%]
[% PROCESS input inputname => "status_whiteboard" size => "40" colspan => 2 %]
[% END %]
[% IF use_keywords %]
:
[% INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.keywords, value = bug.keywords
editable = bug.check_can_change_field("keywords", 0, 1),
no_tds = 1, possible_values = all_keywords
%]
[% END %]
[% IF user.id %]
[% INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.tag, value = bug.tags.join(", "),
editable = 1, possible_values = user.tags.keys
%]
[% END %]
[% END %]
[%############################################################################%]
[%# Block for Duplicates #%]
[%############################################################################%]
[% BLOCK section_duplicates %]
[% RETURN UNLESS bug.duplicates.size %]
[% END %]
[%############################################################################%]
[%# Block for Depends On / Blocks #%]
[%############################################################################%]
[% BLOCK section_dependson_blocks %]
[% INCLUDE dependencies
field = bug_fields.dependson deps = bug.depends_on_obj %]
[% INCLUDE dependencies
field = bug_fields.blocked deps = bug.blocks_obj %]
[% IF bug.dependson.size || bug.blocked.size %]
Show dependency tree
[% IF Param('webdotbase') %]
/ graph
[% END %]
[% END %]
[% END %]
[%############################################################################%]
[%# Block for Restricting Visibility #%]
[%############################################################################%]
[% BLOCK section_restrict_visibility %]
[% RETURN UNLESS bug.groups.size %]
[% inallgroups = 1 %]
[% inagroup = 0 %]
[% emitted_description = 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 emitted_description %]
[% IF NOT inallgroups %]
Only members of a group can change the
visibility of [% terms.abug %] for that group.
[% END %]
[% END %]
[% IF inagroup %]
Users in the roles selected below can always view
this [% terms.bug %]:
[% 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 %]
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.
[% END %]
[%# bz_group_visibility_section %]
[% END %]
[%############################################################################%]
[%# Block for Dates #%]
[%############################################################################%]
[% BLOCK section_dates %]
Reported:
[% bug.creation_ts FILTER time %] by [% INCLUDE global/user.html.tmpl who = bug.reporter %]
[% END %]
[%############################################################################%]
[%# Block for CC LIST #%]
[%############################################################################%]
[% BLOCK section_cclist %]
[% IF user.id %]
[% IF NOT bug.cc || NOT bug.cc.contains(user.login) %]
[% 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
[% END %]
[% END %]
[% IF user.id || bug.cc.size %]
([% IF user.id %]edit[% ELSE %]show[% END %])
[% END %]
[% IF user.id %]
[% INCLUDE global/userselect.html.tmpl
id => "newcc"
name => "newcc"
value => ""
size => 30
classes => ["bz_userfield"]
multiple => 5
%]
[% END %]
[% IF bug.cc %]
[% IF user.id && !bug.user.canedit %]
[% END %]
[% IF user.id AND (bug.user.canedit OR bug.cc.contains(user.login)) %]
[% END %]
[% END %]
[% IF user.id || bug.cc.size %]
[% END %]
[% END %]
[%############################################################################%]
[%# Block for See Also #%]
[%############################################################################%]
[% BLOCK section_see_also %]
[% IF Param('use_see_also') || bug.see_also.size %]
[% INCLUDE bug/field.html.tmpl
field = bug_fields.see_also
value = bug.see_also
editable = bug.check_can_change_field('see_also', 0, 1)
%]
[% END %]
[% END %]
[%############################################################################%]
[%# Block for FLAGS #%]
[%############################################################################%]
[% BLOCK section_flags %]
[%# *** Flags *** %]
[% show_bug_flags = 0 %]
[% bug_flags_set = 0 %]
[% show_more_flags = 0 %]
[% FOREACH type = bug.flag_types %]
[% IF type.flags.size || (user.id && type.is_active && user.can_request_flag(type)) %]
[% show_bug_flags = 1 %]
[% END %]
[% IF user.id && type.is_active && (!type.flags.size || type.is_multiplicable) %]
[% show_more_flags = 1 %]
[% END %]
[% IF type.flags.size %]
[% bug_flags_set = 1 %]
[% END %]
[% LAST IF show_bug_flags && show_more_flags && bug_flags_set %]
[% END %]
[% IF show_bug_flags %]
[% IF bug.flag_types.size %]
[% PROCESS "flag/list.html.tmpl" flag_no_header = 1
flag_types = bug.flag_types
any_flags_requesteeble = bug.any_flags_requesteeble %]
[% END %]
[% IF show_more_flags %]
[% IF !bug_flags_set %]None yet set[% END %]
([% IF !bug_flags_set %]set[% ELSE %]more[% END %] flags)
[% 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 %]
[% IF extra_field_item %]
[% extra_field_item.header FILTER none %]
[% extra_field_item.data FILTER none %]
[% END %]
[% END %]
[% END %]
[%############################################################################%]
[%# Block for Section Spacer #%]
[%############################################################################%]
[% BLOCK section_spacer %]
[% END %]
[%############################################################################%]
[%# Block for dependencies #%]
[%############################################################################%]
[% BLOCK dependencies %]
[% INCLUDE "bug/field-label.html.tmpl" %]
[% IF bug.check_can_change_field(field.name, 0, 1) %]
[% END %]
[% FOREACH dep_bug = deps %]
[% dep_bug.id FILTER bug_link(dep_bug, use_alias => 1)
FILTER none %][% " " %]
[% END %]
[% IF bug.check_can_change_field(field.name, 0, 1) %]
(edit)
[% END %]
[% END %]
[%############################################################################%]
[%# Block for Time Tracking Group #%]
[%############################################################################%]
[% BLOCK section_timetracking %]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.estimated_time, editable = 1
%]
Current Est.:
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.work_time, editable = 1
%]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.remaining_time, editable = 1
%]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.percentage_complete, editable = 1
%]
Gain:
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.deadline, editable = 1
%]
[% 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) %]
[% INCLUDE bug/field.html.tmpl
field = bug_fields.deadline, value = bug.deadline, no_tds = 1
editable = bug.check_can_change_field('deadline', 0, 1) %]
[% END %]
[%############################################################################%]
[%# Block for the Additional Comments box #%]
[%############################################################################%]
[% BLOCK comment_box %]
[% IF user.id %]
:
[% IF user.is_insider && bug.check_can_change_field('longdesc', 0, 1) %]
[% END %]
[% IF bug.check_can_change_field('longdesc', 0, 1) %]
[% INCLUDE global/textarea.html.tmpl
name = 'comment'
id = 'comment'
minrows = 10
maxrows = 25
cols = constants.COMMENT_COLS
%]
[% Hook.process("after_comment_textarea", 'bug/edit.html.tmpl') %]
[% ELSE %]
You are not allowed to make an additional comment on this [% terms.bug %].
[% END %]
[% PROCESS commit_button id=""%]
[% END %]
[%############################################################################%]
[%# Block for SELECT fields #%]
[%############################################################################%]
[% BLOCK select %]
[% IF bug.check_can_change_field(selname, 0, 1)
AND bug.choices.${selname}.size > 1 %]
[% ELSE %]
[% bug.${selname} FILTER html %]
[% END %]
[% 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 %]
[% PROCESS commit_button id=""%]