[%# 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/field-descs.none.tmpl" %] [% PROCESS bug/time.html.tmpl %] <script type="text/javascript"> <!-- [% IF user.is_timetracker %] var fRemainingTime = [% bug.remaining_time %]; // holds the original value function adjustRemainingTime() { // subtracts time spent from remaining time var new_time; // prevent negative values if work_time > fRemainingTime new_time = Math.max(fRemainingTime - document.changeform.work_time.value, 0.0); // get upto 2 decimal places document.changeform.remaining_time.value = Math.round(new_time * 100)/100; } function updateRemainingTime() { // if the remaining time is changed manually, update fRemainingTime fRemainingTime = document.changeform.remaining_time.value; } [% END %] /* Index all classifications so we can keep track of the classification * for the selected product, which could control field visibility. */ var all_classifications = new Array([% bug.choices.product.size %]); [%- FOREACH product = bug.choices.product %] all_classifications['[% product.name FILTER js %]'] = ' [%- product.classification.name FILTER js %]'; [%- END %] //--> </script> <form name="changeform" id="changeform" method="post" action="process_bug.cgi"> <input type="hidden" name="delta_ts" value="[% bug.delta_ts %]"> <input type="hidden" name="longdesclength" value="[% bug.comments.size %]"> <input type="hidden" name="id" value="[% bug.bug_id %]"> <input type="hidden" name="token" value="[% issue_hash_token([bug.id, bug.delta_ts]) FILTER html %]"> [% PROCESS section_title %] <table class="edit_form"> <tr> [%# 1st Column %] <td id="bz_show_bug_column_1" class="bz_show_bug_column"> <table> [%# *** 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 and duplicates *** %] [% PROCESS section_duplicates %] [% PROCESS section_dependson_blocks %] </table> </td> <td> <div class="bz_column_spacer"> </div> </td> [%# 2nd Column %] <td id="bz_show_bug_column_2" class="bz_show_bug_column"> <table cellpadding="3" cellspacing="1"> [%# *** Reported and modified dates *** %] [% PROCESS section_dates %] [% PROCESS section_cclist %] [% PROCESS section_spacer %] [% PROCESS section_see_also %] [% PROCESS section_customfields %] [% PROCESS section_spacer %] [% Hook.process("after_custom_fields") %] [% PROCESS section_flags %] </table> </td> </tr> <tr> <td colspan="3"> <hr id="bz_top_half_spacer"> </td> </tr> </table> <table id="bz_big_form_parts" cellspacing="0" cellpadding="0"><tr> <td> [% IF user.is_timetracker %] [% 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 %] [% IF user.settings.comment_box_position.value == 'before_comments' %] [% PROCESS comment_box %] [% END %] </td> <td> [% PROCESS section_restrict_visibility %] </td> </tr></table> [%# *** Additional Comments *** %] <div id="comments"> [% PROCESS bug/comments.html.tmpl comments = bug.comments mode = user.id ? "edit" : "show" %] </div> [% IF user.settings.comment_box_position.value == 'after_comments' %] <hr> [% PROCESS comment_box %] [% END %] </form> [%############################################################################%] [%# Block for the Title (alias and short desc) #%] [%############################################################################%] [% BLOCK section_title %] [%# That's the main table, which contains all editable fields. %] <div class="bz_alias_short_desc_container edit_form"> [% PROCESS commit_button id="_top"%] <a href="show_bug.cgi?id=[% bug.bug_id %]"> [%-# %]<b>[% terms.Bug %] [% bug.bug_id FILTER html %]</b> [%-# %]</a> -<span id="summary_alias_container" class="bz_default_hidden"> [% IF bug.alias != "" %] (<span id="alias_nonedit_display">[% bug.alias FILTER html %]</span>) [% END %] <span id="short_desc_nonedit_display">[% bug.short_desc FILTER quoteUrls(bug) %]</span> [% IF bug.check_can_change_field('short_desc', 0, 1) || bug.check_can_change_field('alias', 0, 1) %] <small class="editme">(<a href="#" id="editme_action">edit</a>)</small> [% END %] </span> <div id="summary_alias_input"> <table id="summary"> <tr> [% IF bug.check_can_change_field('alias', 0, 1) %] <td> <label for="alias" title="a name for the [% terms.bug %] that can be used in place of its ID number, [%%] e.g. when adding it to a list of dependencies" >Alias</label>:</td><td> [% ELSIF bug.alias %] <td colspan="2">( [% ELSE %] <td colspan="2"> [% END %] [% PROCESS input inputname => "alias" size => "20" maxlength => "20" no_td => 1 %][% ")" IF NOT bug.check_can_change_field('alias', 0, 1) && bug.alias %] </td> </tr> [%# *** Summary *** %] <tr> <td> <label accesskey="s" for="short_desc"><u>S</u>ummary</label>: </td> <td> [% PROCESS input inputname => "short_desc" size => "80" colspan => 2 maxlength => 255 spellcheck => "true" no_td => 1 %] </td> </tr> </table> </div> </div> <script type="text/javascript"> hideAliasAndSummary('[% bug.short_desc FILTER js %]', '[% bug.alias FILTER js %]'); </script> [% END %] [%############################################################################%] [%# Block for the first table in the "Details" section #%] [%############################################################################%] [% BLOCK section_details1 %] [%#############%] [%# PRODUCT #%] [%#############%] <tr> [% 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) %] </tr> [%# 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. #%] <tr class="bz_default_hidden"> [% 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) %] </tr> [%###############%] [%# Component #%] [%###############%] <tr> [% INCLUDE bug/field.html.tmpl bug = bug, field = bug_fields.component, value = bug.component override_legal_values = bug.choices.component desc_url = "describecomponents.cgi?product=$bug.product" editable = bug.check_can_change_field('component', 0, 1) %] </tr> <tr> <td class="field_label"> <label for="version"><b>Version</b></label>: </td> [% PROCESS select selname => "version" %] </tr> [%############%] [%# PLATFORM #%] [%############%] <tr> <td class="field_label"> <label for="rep_platform" accesskey="h"> <b>[% field_descs.rep_platform FILTER html %]</b></label>: </td> <td class="field_value"> [% 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) %] <script type="text/javascript"> assignToDefaultOnChange(['product', 'component']); </script> </td> </tr> [% END %] [%############################################################################%] [%# Block for the status section #%] [%############################################################################%] [% BLOCK section_status %] <tr> <td class="field_label"> <b><a href="page.cgi?id=fields.html#status">Status</a></b>: </td> <td id="bz_field_status"> <span id="static_bug_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 %] (<a href="#add_comment" onclick="window.setTimeout(function() { document.getElementById('bug_status').focus(); }, 10)">edit</a>) [% END %] </span> </td> </tr> [% END %] [%############################################################################%] [%# Block for the second table in the "Details" section #%] [%############################################################################%] [% BLOCK section_details2 %] [%###############################################################%] [%# Importance (priority and severity) #%] [%###############################################################%] <tr> <td class="field_label"> <label for="priority" accesskey="i"> <b><a href="page.cgi?id=fields.html#importance"><u>I</u>mportance</a></b></label>: </td> <td> [% 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') %] </td> </tr> [% IF Param("usetargetmilestone") && bug.target_milestone %] <tr> <td class="field_label"> <label for="target_milestone"> <a href="page.cgi?id=fields.html#target_milestone"> Target Milestone</a></label>: </td> [% PROCESS select selname = "target_milestone" %] </tr> [% END %] [% END %] [%############################################################################%] [%# Block for the table in the "People" section #%] [%############################################################################%] [% BLOCK section_people %] <tr> <td class="field_label"> <b><a href="page.cgi?id=fields.html#assigned_to">Assigned To</a></b>: </td> <td> [% IF bug.check_can_change_field("assigned_to", 0, 1) %] <div id="bz_assignee_edit_container" class="bz_default_hidden"> <span> [% INCLUDE global/user.html.tmpl who = bug.assigned_to %] (<a href="#" id="bz_assignee_edit_action">edit</a>) [% IF bug.assigned_to.id != user.id %] (<a title="Reassign to yourself" href="#" id="bz_assignee_take_action">take</a>) [% END %] </span> </div> <div id="bz_assignee_input"> [% INCLUDE global/userselect.html.tmpl id => "assigned_to" name => "assigned_to" value => bug.assigned_to.login classes => ["bz_userfield"] size => 30 %] <br> <input type="checkbox" id="set_default_assignee" name="set_default_assignee" value="1"> <label id="set_default_assignee_label" for="set_default_assignee">Reset Assignee to default</label> </div> <script type="text/javascript"> hideEditableField('bz_assignee_edit_container', 'bz_assignee_input', 'bz_assignee_edit_action', 'assigned_to', '[% bug.assigned_to.login FILTER js %]' ); hideEditableField('bz_assignee_edit_container', 'bz_assignee_input', 'bz_assignee_take_action', 'assigned_to', '[% bug.assigned_to.login FILTER js %]', '[% user.login FILTER js %]' ); initDefaultCheckbox('assignee'); </script> [% ELSE %] [% INCLUDE global/user.html.tmpl who = bug.assigned_to %] [% END %] </td> </tr> [% IF Param('useqacontact') %] <tr> <td class="field_label"> <label for="qa_contact" accesskey="q"><b><u>Q</u>A Contact</b></label>: </td> <td> [% IF bug.check_can_change_field("qa_contact", 0, 1) %] [% IF bug.qa_contact != "" %] <div id="bz_qa_contact_edit_container" class="bz_default_hidden"> <span> <span id="bz_qa_contact_edit_display"> [% INCLUDE global/user.html.tmpl who = bug.qa_contact %]</span> (<a href="#" id="bz_qa_contact_edit_action">edit</a>) </span> </div> [% END %] <div id="bz_qa_contact_input"> [% INCLUDE global/userselect.html.tmpl id => "qa_contact" name => "qa_contact" value => bug.qa_contact.login size => 30 classes => ["bz_userfield"] emptyok => 1 %] <br> <input type="checkbox" id="set_default_qa_contact" name="set_default_qa_contact" value="1"> <label for="set_default_qa_contact" id="set_default_qa_contact_label">Reset QA Contact to default</label> </div> <script type="text/javascript"> [% IF bug.qa_contact != "" %] hideEditableField('bz_qa_contact_edit_container', 'bz_qa_contact_input', 'bz_qa_contact_edit_action', 'qa_contact', '[% bug.qa_contact.login FILTER js %]'); [% END %] initDefaultCheckbox('qa_contact'); </script> [% ELSE %] [% INCLUDE global/user.html.tmpl who = bug.qa_contact %] [% END %] </td> </tr> [% END %] [% END %] [%############################################################################%] [%# Block for URL Keyword and Whiteboard #%] [%############################################################################%] [% BLOCK section_url_keyword_whiteboard %] <tr> [% INCLUDE "bug/field-label.html.tmpl" field = bug_fields.bug_file_loc editable = 1 accesskey = "u" %] <td> [% IF bug.check_can_change_field("bug_file_loc", 0, 1) %] <span id="bz_url_edit_container" class="bz_default_hidden"> [% IF is_safe_url(bug.bug_file_loc) %] <a href="[% bug.bug_file_loc FILTER html %]" target="_blank" title="[% bug.bug_file_loc FILTER html %]"> [% bug.bug_file_loc FILTER truncate(40) FILTER html %]</a> [% ELSE %] [% bug.bug_file_loc FILTER html %] [% END %] (<a href="#" id="bz_url_edit_action">edit</a>)</span> [% END %] <span id="bz_url_input_area"> [% 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) %] <a href="[% bug.bug_file_loc FILTER html %]">[% url_output FILTER none %]</a> [% ELSE %] [% url_output FILTER none %] [% END %] </span> [% IF bug.check_can_change_field("bug_file_loc", 0, 1) %] <script type="text/javascript"> hideEditableField('bz_url_edit_container', 'bz_url_input_area', 'bz_url_edit_action', 'bug_file_loc', "[% bug.bug_file_loc FILTER js %]"); </script> [% END %] </td> </tr> [% IF Param('usestatuswhiteboard') %] <tr> <td class="field_label"> <label for="status_whiteboard" accesskey="w"><b><u>W</u>hiteboard</b></label>: </td> [% PROCESS input inputname => "status_whiteboard" size => "40" colspan => 2 %] </tr> [% END %] [% IF use_keywords %] <tr> <td class="field_label"> <label for="keywords" accesskey="k"> <b><a href="describekeywords.cgi"><u>K</u>eywords</a></b></label>: </td> <td class="field_value" colspan="2"> [% 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 %] </td> </tr> [% END %] [% END %] [%############################################################################%] [%# Block for Duplicates #%] [%############################################################################%] [% BLOCK section_duplicates %] [% RETURN UNLESS bug.duplicates.size %] <tr> <td class="field_label"> <label for="duplicates">Duplicates</label>: </td> <td class="field_value" colspan="2"> <span id="duplicates"> [% FOREACH dupe = bug.duplicates %] [% dupe.id FILTER bug_link(dupe, use_alias => 1) FILTER none %][% " " %] [% END %] </span> (<a href="buglist.cgi?bug_id=[% bug.duplicate_ids.join(",") FILTER html %]"> [%-%]view as [% terms.bug %] list</a>) </td> </tr> [% END %] [%############################################################################%] [%# Block for Depends On / Blocks #%] [%############################################################################%] [% BLOCK section_dependson_blocks %] <tr> [% INCLUDE dependencies field = bug_fields.dependson deps = bug.depends_on_obj %] </tr> <tr> [% INCLUDE dependencies field = bug_fields.blocked deps = bug.blocks_obj %] <tr> <th> </th> <td colspan="2" align="left" id="show_dependency_tree_or_graph"> Show dependency <a href="showdependencytree.cgi?id=[% bug.bug_id %]&hide_resolved=1">tree</a> [% IF Param('webdotbase') %] / <a href="showdependencygraph.cgi?id=[% bug.bug_id %]">graph</a> [% END %] </td> </tr> [% END %] [%############################################################################%] [%# Block for Restricting Visibility #%] [%############################################################################%] [% BLOCK section_restrict_visibility %] [% RETURN UNLESS bug.groups.size %] <div class="bz_group_visibility_section"> [% 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 %] <div id="bz_restrict_group_visibility_help"> <b>Only users in all of the selected groups can view this [%+ terms.bug %]:</b> <p class="instructions"> Unchecking all boxes makes this a more public [% terms.bug %]. </p> </div> [% END %] [% IF group.ingroup %] <input type="hidden" name="defined_groups" value="[% group.name FILTER html %]"> [% END %] <input type="checkbox" value="[% group.name FILTER html %]" name="groups" id="group_[% group.bit %]" [% ' checked="checked"' IF group.ison %] [% ' disabled="disabled"' IF NOT group.ingroup %]> <label for="group_[% group.bit %]"> [%- group.description FILTER html_light %]</label> <br> [% END %] [% IF emitted_description %] [% IF NOT inallgroups %] <p class="instructions">Only members of a group can change the visibility of [% terms.abug %] for that group.</p> [% END %] [% END %] [% IF inagroup %] <div id="bz_enable_role_visibility_help"> <b>Users in the roles selected below can always view this [% terms.bug %]:</b> </div> <div id="bz_enable_role_visibility"> <div> [% user_can_edit_accessible = bug.check_can_change_field("reporter_accessible", 0, 1) %] [% IF user_can_edit_accessible %] <input type="hidden" name="defined_reporter_accessible" value="1"> [% END %] <input type="checkbox" value="1" name="reporter_accessible" id="reporter_accessible" [% " checked" IF bug.reporter_accessible %] [% " disabled=\"disabled\"" UNLESS user_can_edit_accessible %]> <label for="reporter_accessible">Reporter</label> </div> <div> [% user_can_edit_accessible = bug.check_can_change_field("cclist_accessible", 0, 1) %] [% IF user_can_edit_accessible %] <input type="hidden" name="defined_cclist_accessible" value="1"> [% END %] <input type="checkbox" value="1" name="cclist_accessible" id="cclist_accessible" [% " checked" IF bug.cclist_accessible %] [% " disabled=\"disabled\"" UNLESS user_can_edit_accessible %]> <label for="cclist_accessible">CC List</label> </div> <p class="instructions"> 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. </p> </div> [% END %] </div> [%# bz_group_visibility_section %] [% END %] [%############################################################################%] [%# Block for Dates #%] [%############################################################################%] [% BLOCK section_dates %] <tr> <td class="field_label"> <b>Reported</b>: </td> <td> [% bug.creation_ts FILTER time %] by [% INCLUDE global/user.html.tmpl who = bug.reporter %] </td> </tr> <tr> <td class="field_label"> <b> Modified</b>: </td> <td> [% bug.delta_ts FILTER time FILTER replace(':\d\d$', '') FILTER replace(':\d\d ', ' ')%] (<a href="show_activity.cgi?id=[% bug.bug_id %]">[%# terms.Bug %]History</a>) </td> </tr> [% END %] [%############################################################################%] [%# Block for CC LIST #%] [%############################################################################%] [% BLOCK section_cclist %] <tr> <td class="field_label"> <label for="newcc" accesskey="a"><b>CC List</b>:</label> </td> <td> [% 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) %] <input type="checkbox" id="addselfcc" name="addselfcc" [% " checked=\"checked\"" IF user.settings.state_addselfcc.value == 'always' || (!has_role && user.settings.state_addselfcc.value == 'cc_unless_role') %]> <label for="addselfcc">Add me to CC list</label> <br> [% 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 %] <span id="cc_edit_area_showhide_container" class="bz_default_hidden"> (<a href="#" id="cc_edit_area_showhide">[% IF user.id %]edit[% ELSE %]show[% END %]</a>) </span> [% END %] <div id="cc_edit_area"> <br> [% IF user.id %] <div> <div><label for="cc"><b>Add</b></label></div> [% INCLUDE global/userselect.html.tmpl id => "newcc" name => "newcc" value => "" size => 30 classes => ["bz_userfield"] multiple => 5 %] </div> [% END %] [% IF bug.cc %] <select id="cc" multiple="multiple" size="5" [% IF bug.user.canedit %]name="cc"[% END %]> [% FOREACH c = bug.cc %] <option value="[% c FILTER email FILTER html %]"> [% c FILTER email FILTER html %]</option> [% END %] </select> [% IF user.id && !bug.user.canedit %] <input type="hidden" name="cc" value="[% user.login FILTER email FILTER html %]"> [% END %] [% IF user.id AND (bug.user.canedit OR bug.cc.contains(user.login)) %] <br> <input type="checkbox" id="removecc" name="removecc"> <label for="removecc"> [% IF bug.user.canedit %] Remove selected CCs [% ELSE %] Remove me from the CC list [% END %] </label> <br> [% END %] [% END %] </div> [% IF user.id || bug.cc.size %] <script type="text/javascript"> hideEditableField( 'cc_edit_area_showhide_container', 'cc_edit_area', 'cc_edit_area_showhide', '', ''); </script> [% END %] </td> </tr> [% END %] [%############################################################################%] [%# Block for See Also #%] [%############################################################################%] [% BLOCK section_see_also %] [% IF Param('use_see_also') || bug.see_also.size %] <tr> [% INCLUDE bug/field.html.tmpl field = bug_fields.see_also value = bug.see_also editable = bug.check_can_change_field('see_also', 0, 1) %] </tr> [% 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 && type.flags.size > 0) || (user.id && type.is_active) %] [% show_bug_flags = 1 %] [% END %] [% IF type.is_active && (!type.flags || type.is_multiplicable) %] [% show_more_flags = 1 %] [% END %] [% IF type.flags && type.flags.size > 0 %] [% bug_flags_set = 1 %] [% END %] [% LAST IF show_bug_flags && show_more_flags && bug_flags_set %] [% END %] [% IF show_bug_flags %] <tr> <td class="field_label flags_label"> <label><b>Flags:</b></label> </td> <td></td> </tr> <tr> <td colspan="2"> [% 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 %] [% IF show_more_flags %] <span id="bz_flags_more_container" class="bz_default_hidden"> [% IF !bug_flags_set %]<em>None yet set</em>[% END %] (<a href="#" id="bz_flags_more_action">[% IF !bug_flags_set %]set[% ELSE %]more[% END %] flags</a>) </span> <script type="text/javascript"> YAHOO.util.Dom.removeClass('bz_flags_more_container', 'bz_default_hidden'); var table = YAHOO.util.Dom.get("flags"); var rows = YAHOO.util.Dom.getElementsByClassName('bz_flag_type', 'tbody', table); for (var i = 0; i < rows.length; i++) { YAHOO.util.Dom.addClass(rows[i], 'bz_default_hidden'); } YAHOO.util.Event.addListener('bz_flags_more_action', 'click', function (e) { YAHOO.util.Dom.addClass('bz_flags_more_container', 'bz_default_hidden'); for (var i = 0; i < rows.length; i++) { YAHOO.util.Dom.removeClass(rows[i], 'bz_default_hidden'); } YAHOO.util.Event.preventDefault(e); }); </script> [% END %] </td> </tr> [% END %] [% END %] [%############################################################################%] [%# Block for Custom Fields #%] [%############################################################################%] [% BLOCK section_customfields %] [%# *** Custom Fields *** %] [% USE Bugzilla %] [% FOREACH field = Bugzilla.active_custom_fields %] <tr> [% PROCESS bug/field.html.tmpl value = bug.${field.name} editable = bug.check_can_change_field(field.name, 0, 1) value_span = 2 %] </tr> [% IF extra_field_item %] <tr> <th class="field_label">[% extra_field_item.header FILTER none %]</th> <td>[% extra_field_item.data FILTER none %]</td> </tr> [% END %] [% END %] [% END %] [%############################################################################%] [%# Block for Section Spacer #%] [%############################################################################%] [% BLOCK section_spacer %] <tr> <td colspan="2" class="bz_section_spacer"></td> </tr> [% END %] [%############################################################################%] [%# Block for dependencies #%] [%############################################################################%] [% BLOCK dependencies %] [% INCLUDE "bug/field-label.html.tmpl" %] <td> <span id="[% field.name FILTER html %]_input_area"> [% IF bug.check_can_change_field(field.name, 0, 1) %] <input name="[% field.name FILTER html %]" id="[% field.name FILTER html %]" class="text_input" value="[% bug.${field.name}.join(', ') FILTER html %]"> [% END %] </span> [% 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) %] <span id="[% field.name FILTER html %]_edit_container" class="edit_me bz_default_hidden"> (<a href="#" id="[% field.name FILTER html %]_edit_action">edit</a>) </span> <script type="text/javascript"> hideEditableField('[% field.name FILTER js %]_edit_container', '[% field.name FILTER js %]_input_area', '[% field.name FILTER js %]_edit_action', '[% field.name FILTER js %]', '[% bug.${field.name}.join(', ') FILTER js %]'); </script> [% END %] </td> [% END %] [%############################################################################%] [%# Block for Time Tracking Group #%] [%############################################################################%] [% BLOCK section_timetracking %] <table class="bz_time_tracking_table"> <tr> <th> <label for="estimated_time">Orig. Est.</label> </th> <th> Current Est. </th> <th> <label for="work_time">Hours Worked</label> </th> <th> <label for="remaining_time">Hours Left</label> </th> <th> %Complete </th> <th> Gain </th> <th> <label for="deadline">Deadline</label> </th> </tr> <tr> <td> <input name="estimated_time" id="estimated_time" value="[% PROCESS formattimeunit time_unit=bug.estimated_time %]" size="6" maxlength="6"> </td> <td> [% PROCESS formattimeunit time_unit=(bug.actual_time + bug.remaining_time) %] </td> <td> [% PROCESS formattimeunit time_unit=bug.actual_time %] + <input name="work_time" id="work_time" value="0" size="3" maxlength="6" onchange="adjustRemainingTime();"> </td> <td> <input name="remaining_time" id="remaining_time" value="[% PROCESS formattimeunit time_unit=bug.remaining_time %]" size="6" maxlength="6" onchange="updateRemainingTime();"> </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> <td> [% INCLUDE bug/field.html.tmpl field = bug_fields.deadline, value = bug.deadline, no_tds = 1 editable = bug.check_can_change_field('deadline', 0, 1) %] </td> </tr> <tr> <td colspan="7" class="bz_summarize_time"> <a href="summarize_time.cgi?id=[% bug.bug_id %]&do_depends=1"> Summarize time (including time for [% terms.bugs %] blocking this [% terms.bug %])</a> </td> </tr> </table> [% END %] [%############################################################################%] [%# Block for the Additional Comments box #%] [%############################################################################%] [% BLOCK comment_box %] <div id="add_comment" class="bz_section_additional_comments"> [% IF user.id %] <label for="comment" accesskey="c"><b>Additional <u>C</u>omments</b></label>: [% IF user.is_insider %] <input type="checkbox" name="comment_is_private" value="1" id="newcommentprivacy" onClick="updateCommentTagControl(this, 'comment')"> <label for="newcommentprivacy"> Make comment private (visible only to members of the <strong>[% Param('insidergroup') FILTER html %]</strong> group) </label> [% END %] <!-- This table keeps the submit button aligned with the box. --> <table><tr><td> [% 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') %] <br> [% PROCESS commit_button id=""%] <table id="bug_status_bottom" class="status" cellspacing="0" cellpadding="0"> <tr> <td class="field_label"> <b><a href="page.cgi?id=fields.html#status">Status</a></b>: </td> <td> [% PROCESS bug/knob.html.tmpl %] </td> </tr> </table> </td></tr></table> [%# For logged-out users %] [% ELSE %] <table> <tr> <td> <fieldset> <legend>Note</legend> You need to <a href="show_bug.cgi?id= [%- bug.bug_id %]&GoAheadAndLogIn=1">log in</a> before you can comment on or make changes to this [% terms.bug %]. </fieldset> </td> </tr> </table> [% END %] </div> [% END %] [%############################################################################%] [%# Block for SELECT fields #%] [%############################################################################%] [% BLOCK select %] <td> [% IF bug.check_can_change_field(selname, 0, 1) AND bug.choices.${selname}.size > 1 %] <select id="[% selname %]" name="[% selname %]"> [% FOREACH x = bug.choices.${selname} %] [% NEXT IF NOT x.is_active AND x.name != bug.${selname} %] <option value="[% x.name FILTER html %]" [% " selected" IF x.name == bug.${selname} %]> [%- x.name FILTER html %] </option> [% END %] </select> [% ELSE %] [% bug.${selname} FILTER html %] [% END %] </td> [% END %] [%############################################################################%] [%# Block for INPUT fields #%] [%############################################################################%] [% BLOCK input %] [% IF no_td != 1 %] <td[% " colspan=\"$colspan\"" IF colspan %]> [% END %] [% val = value ? value : bug.$inputname %] [% IF bug.check_can_change_field(inputname, 0, 1) %] <input id="[% inputname %]" name="[% inputname %]" class="text_input" value="[% val FILTER html %]"[% " size=\"$size\"" IF size %] [% " maxlength=\"$maxlength\"" IF maxlength %] [% " spellcheck=\"$spellcheck\"" IF spellcheck %]> [% ELSE %] [% IF size && val.length > size %] <span title="[% val FILTER html %]"> [% val FILTER truncate(size) FILTER html %] </span> [% ELSE %] [% val FILTER html %] [% END %] [% END %] [% IF no_td != 1 %] </td> [% END %] [% no_td = 0 %] [% maxlength = 0 %] [% colspan = 0 %] [% size = 0 %] [% value = undef %] [% spellcheck = undef %] [% END %] [% BLOCK commit_button %] [% IF user.id %] <div class="knob-buttons"> <input type="submit" value="Save Changes" id="commit[% id FILTER css_class_quote %]"> </div> [% END %] [% END %]