[%# 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 # Elliotte Martin #%] [% PROCESS bug/time.html.tmpl %] [% SET select_fields = {} %] [% FOREACH field = Bugzilla.get_fields( { type => constants.FIELD_TYPE_SINGLE_SELECT, custom => 0 }) %] [% select_fields.${field.name} = field %] [% END %] [%# CustIS Bug 57315 - Force Fucking Firefox to reset form on Reload %] [% SET cfname = 'changeform_' _ bug.delta_ts.replace('\D+', '') %]
[% SET use_divs = 1 %] [% SET no_tds = 1 %] [% PROCESS section_title %]
[% PROCESS section_status %] [% PROCESS section_details1 %] [% PROCESS section_people %] [% PROCESS section_customfields part=1 %]
[% PROCESS section_details2 %] [% PROCESS section_keyword_whiteboard %] [% PROCESS section_url %] [% PROCESS section_customfields part=2 %]
[% PROCESS section_dates %] [% PROCESS section_see_also %] [% PROCESS section_dependson_blocks %] [% PROCESS section_customfields part=3 %]
[% PROCESS section_cclist %] [% PROCESS section_customfields part=4 %] [% Hook.process("after_custom_fields") %] [% PROCESS section_flags %]

[% IF user.is_timetracker %] [% PROCESS section_timetracking %] [% END %] [%# *** Attachments *** %] [% PROCESS attachment/list.html.tmpl attachments = bug.attachments bugid = bug.bug_id show_attachment_flags = bug.show_attachment_flags %] [% PROCESS section_restrict_visibility %]
[%# clear float of flatten_table %]
[% PROCESS comment_box %] [%# *** Additional Comments *** %]
[% PROCESS bug/comments.html.tmpl comments = bug.comments mode = user.id ? "edit" : "show" %]
[%############################################################################%] [%# Block for the Title (alias and short desc) #%] [%############################################################################%] [% BLOCK section_title %]
[% PROCESS commit_button id="_top" nobr=1 %] [% terms.Bug %] [% bug.bug_id FILTER html %] - [% IF Bugzilla.get_field('alias').enabled && bug.alias != '' %] ([% bug.alias FILTER html %]) [% 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 Bugzilla.get_field('alias').enabled %] [% IF bug.check_can_change_field('alias', 0, 1) %] [% END %] [%# *** Summary *** %]
: [% 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 %]
: [% PROCESS input inputname => "short_desc" size => "80" colspan => 2 maxlength => 255 spellcheck => "true" no_td => 1 %]
[% END %] [%############################################################################%] [%# Block for the first table in the "Details" section #%] [%############################################################################%] [% BLOCK section_details1 %] [% INCLUDE bug/field.html.tmpl bug = bug, field = select_fields.product, desc_url = 'describecomponents.cgi', value = bug.product_id editable = bug.check_can_change_field('product', 0, 1) %] [% INCLUDE bug/field.html.tmpl bug = bug, field = select_fields.component, value = bug.component_id, editable = bug.check_can_change_field('component', 0, 1) %] [% INCLUDE bug/field.html.tmpl bug = bug, field = select_fields.version, value = bug.version, editable = bug.check_can_change_field('version', 0, 1) %] [% END %] [%############################################################################%] [%# Block for the status section #%] [%############################################################################%] [% BLOCK section_status %]

[% bug.bug_status_obj.name FILTER html %] [% IF bug.resolution %] [%+ bug.resolution_obj.name 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, severity and votes) #%] [%###############################################################%]

[% INCLUDE bug/field.html.tmpl bug = bug, field = select_fields.priority, value = bug.priority use_divs = 0 no_search_link = 1 style = "width: auto" editable = bug.check_can_change_field('priority', 0, 1) %] [%+ INCLUDE bug/field.html.tmpl bug = bug, field = select_fields.bug_severity, value = bug.bug_severity use_divs = 0 no_search_link = 1 style = "width: auto" editable = bug.check_can_change_field('bug_severity', 0, 1) %] (search) [% IF bug.use_votes %] [% IF bug.votes %] with [% bug.votes %] [% IF bug.votes == 1 %] vote [% ELSE %] votes [% END %] [% END %] (vote) [% END %]
[%###################%] [%# PLATFORM AND OS #%] [%###################%] [% IF (Bugzilla.get_field('rep_platform').enabled OR Bugzilla.get_field('op_sys').enabled) AND (bug.check_can_change_field('rep_platform', 0, 1) || bug.check_can_change_field('op_sys', 0, 1) || bug.op_sys || bug.rep_platform) %]

[% IF Bugzilla.get_field('op_sys').enabled %] [% INCLUDE bug/field.html.tmpl bug = bug, field = select_fields.op_sys, value = bug.op_sys use_divs = 0 no_search_link = 1 style = "width: auto" editable = bug.check_can_change_field('op_sys', 0, 1) %] [% END %] [%+ IF Bugzilla.get_field('rep_platform').enabled %] [% INCLUDE bug/field.html.tmpl bug = bug, field = select_fields.rep_platform, value = bug.rep_platform use_divs = 0 no_search_link = 1 style = "width: auto" editable = bug.check_can_change_field('rep_platform', 0, 1) %] [% END %]
[% END %] [% IF Bugzilla.get_field('target_milestone').enabled %] [% INCLUDE bug/field.html.tmpl bug = bug, field = select_fields.target_milestone, value = bug.target_milestone, editable = bug.check_can_change_field('target_milestone', 0, 1) %] [% 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)
[% INCLUDE global/userselect.html.tmpl id => "assigned_to" name => "assigned_to" value => bug.assigned_to.login size => 30 %]
[% ELSE %] [% INCLUDE global/user.html.tmpl who = bug.assigned_to %] [% END %]
[% IF Bugzilla.get_field('qa_contact').enabled %]

[% IF bug.check_can_change_field("qa_contact", 0, 1) %] [% IF bug.qa_contact != "" %]
[% INCLUDE global/user.html.tmpl who = 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 global/user.html.tmpl who = bug.qa_contact %] [% END %]
[% END %] [% END %] [%############################################################################%] [%# Block for URL Keyword and Whiteboard #%] [%############################################################################%] [% BLOCK section_url %] [% SET url_trimmed = bug.bug_file_loc.replace('^\s+|\s+$', '') %] [% SET chg = bug.check_can_change_field("bug_file_loc", 0, 1) %] [% IF chg OR url_trimmed != '' %]

[% IF chg %] [% IF is_safe_url(url_trimmed) %] [% url_trimmed FILTER truncate(40) FILTER html %] [% ELSE %] [% url_trimmed FILTER html %] [% END %] (edit) [% END %] [% url_output = PROCESS input no_td=1 inputname => "bug_file_loc" size => "40" colspan => 2 %] [% IF NOT chg AND is_safe_url(url_trimmed) %] [% url_output FILTER none %] [% ELSE %] [% url_output FILTER none %] [% END %] [% IF chg %] [% END %]
[% END %] [% END %] [% BLOCK section_keyword_whiteboard %] [% IF Bugzilla.get_field('status_whiteboard').enabled && (bug.status_whiteboard != '' OR bug.check_can_change_field('status_whiteboard', 0, 1)) %]

[% PROCESS input inputname => "status_whiteboard" size => "40" colspan => 2 %]
[% END %] [% IF Bugzilla.has_keywords %] [% val = bug.get_string('keywords') %] [% chg = bug.check_can_change_field('keywords', 0, 1) %] [% IF val != '' OR chg %]

[% IF chg %] [% IF val != '' %] [% FOREACH keyword = bug.keywords_obj %] [% keyword.name | html %] [% ',' UNLESS loop.last %] [% END %] (Edit) [% END %]
[% ELSE %] [% val | html %] [% END %]
[% END %] [% END %] [% END %] [%############################################################################%] [%# Block for Depends On / Blocks #%] [%############################################################################%] [% BLOCK section_dependson_blocks %] [% PROCESS dependencies dep = { title => "Depends on", fieldname => "dependson" } %] [% IF bug.lastchangeddeps %]
Blockers completed ~[% bug.depscompletedpercent %]%, last changed [% bug.lastchangeddeps %]
[% END %] [% PROCESS dependencies accesskey = "b" dep = { title => "Blocks", fieldname => "blocked" } %]
Show dependency tree [% IF Param('webdotbase') %] / graph [% END %] [% PROCESS scrum_cards %]
[% 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 %]
[% emitted_description ? 'Also allow' : 'Allow' %] to 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 Bugzilla.get_field('qa_contact').enabled %] 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 %] [%# *** Check access to bug *** %]

List users who can see this bug

[%# bz_group_visibility_section %] [% END %] [%############################################################################%] [%# Block for Dates #%] [%############################################################################%] [% BLOCK section_dates %]

[% bug.creation_ts FILTER time %] by [% INCLUDE global/user.html.tmpl who = bug.reporter %]

[% bug.delta_ts FILTER time FILTER replace(':\d\d$', '') FILTER replace(':\d\d ', ' ')%] ([%# terms.Bug %]History)
[% END %] [%############################################################################%] [%# Block for CC LIST #%] [%############################################################################%] [% BLOCK section_cclist %]

[% chg = bug.check_can_change_field('cc', 0, 1) %] [% bug.cc.size || 0 FILTER html %] [%+ bug.cc.size > 1 ? 'users' : 'user' %] [% IF user.id AND bug.cc.contains(user.email) %] including you[% END %] [%+ IF chg %](edit)[% END %] [% IF user.id && (NOT bug.cc || NOT bug.cc.contains(user.login)) %] [% has_role = bug.reporter_id == user.id || bug.assigned_to_id == user.id || (Bugzilla.get_field('qa_contact').enabled && bug.qa_contact_id && bug.qa_contact_id == user.id) %] [% END %]
[% IF bug.cc.size > 0 %]
    [% FOR c = bug.cc %]
  • [% c FILTER email FILTER html %]
  • [% END %]
[% END %]
[% IF chg %]
[% IF user.id %]
[% INCLUDE global/userselect.html.tmpl id => "newcc" name => "newcc" value => "" size => 30 multiple => 5 %]
[% END %] [% IF bug.cc.size %] [% IF user.id %]

[% END %] [% END %] [% Hook.process('after_cc_list') %]
[% END %]
[% END %] [%############################################################################%] [%# Block for See Also #%] [%############################################################################%] [% BLOCK section_see_also %] [% IF Bugzilla.get_field('see_also').enabled || bug.see_also.size %] [% INCLUDE bug/field.html.tmpl field = Bugzilla.get_field('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 %] [% 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 bug.flag_types.size > 0 %] [% PROCESS "flag/list.html.tmpl" flag_types = bug.flag_types any_flags_requesteeble = bug.any_flags_requesteeble %] [% END %]
[% END %] [% END %] [%############################################################################%] [%# Block for Custom Fields #%] [%############################################################################%] [% BLOCK section_customfields %] [% FOREACH field = Bugzilla.active_custom_fields %] [% IF (part == 1 || field.sortkey >= (part - 1)*1000) && (part == 4 || field.sortkey < part*1000) %] [% INCLUDE bug/field.html.tmpl value = bug.${field.name} editable = bug.check_can_change_field(field.name, 0, 1) value_span = 2 %] [% END %] [% END %] [% END %] [%############################################################################%] [%# Block for dependencies #%] [%############################################################################%] [% BLOCK dependencies %] [% chg = bug.check_can_change_field(dep.fieldname, 0, 1) %] [% IF chg || bug.${dep.fieldname}.size %]

[% IF chg %] [% END %] [% FOREACH depbug = bug.${dep.fieldname} %] [% depbug FILTER bug_link(depbug, use_alias => 1) FILTER none %][% " " %] [% END %] [% IF chg %] (edit) [% END %]
[% 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 the Additional Comments box #%] [%############################################################################%] [% BLOCK comment_box %]
[% IF user.id %] : [% IF user.is_insider %] [% END %] [% IF Param('allow_commentsilent') %] [% END %] [% INCLUDE global/textarea.html.tmpl name = 'comment' id = 'comment_textarea' minrows = 10 maxrows = 25 cols = constants.COMMENT_COLS style = (user.settings.comment_width.value == 'on' ? 'width: 100%' : '') %] [% Hook.process("after_comment_textarea", 'bug/edit.html.tmpl') %]
[% PROCESS commit_button id="" nobr=0%]
[% PROCESS bug/knob.html.tmpl %]
[%# For logged-out users %] [% ELSE %]
Note You need to log in before you can comment on or make changes to this [% terms.bug %].
[% END %]
[% END %] [%############################################################################%] [%# Block for INPUT fields #%] [%############################################################################%] [% BLOCK input %] [% val = 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 %] [% no_td = 0 %] [% maxlength = 0 %] [% colspan = 0 %] [% size = 0 %] [% value = undef %] [% spellcheck = undef %] [% END %] [% BLOCK commit_button %] [% IF user.id %] [% w = BLOCK %] [% look_in_wiki = bug.component_obj.wiki_url || bug.product_obj.wiki_url || Param('wiki_url') %] [% IF look_in_wiki %] [% look_in_wiki = look_in_wiki _ 'Bug_$BUG' %] [% look_in_urls.push([ 'Wiki', look_in_wiki ]) %] [% END %] [% IF look_in_urls %] Look for [% terms.Bug %] in: [% FOREACH link = look_in_urls %] [% IF !loop.first %], [% END %] [% link.0 | html %] [% END %] [% END %] [% END %]
[% IF nobr %][% w %][% ELSE %][% END %] [% IF bug.user.canmove %] [% END %] [% IF NOT nobr %]

[% w %]

[% END %]
[% END %] [% END %] [%############################################################################%] [%# Block for SCRUM CARDS #%] [%############################################################################%] [% BLOCK scrum_cards %] | Scrum card [% END %]