📄 edit.html.tmpl
字号:
[%# 1.0@bugzilla.org %][%# 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 <gerv@gerv.net> # Vaskin Kissoyan <vkissoyan@yahoo.com> #%][% PROCESS global/variables.none.tmpl %][% PROCESS "global/field-descs.none.tmpl" %][% PROCESS bug/time.html.tmpl %] <script type="text/javascript"> <!-- /* Outputs a link to call replyToComment(); used to reduce HTML output */ function addReplyLink(id) { /* XXX this should really be updated to use the DOM Core's * createElement, but finding a container isn't trivial. */ document.write('[<a href="#add_comment" onclick="replyToComment(' + id + ');">reply<' + '/a>]'); } /* Adds the reply text to the `comment' textarea */ function replyToComment(id) { /* pre id="comment_name_N" */ var text_elem = document.getElementById('comment_text_'+id); var text = getText(text_elem); /* make sure we split on all newlines -- IE or Moz use \r and \n * respectively. */ text = text.split(/\r|\n/); var replytext = ""; for (var i=0; i < text.length; i++) { replytext += "> " + text[i] + "\n"; } replytext = "(In reply to comment #" + id + ")\n" + replytext + "\n"; [% IF Param("insidergroup") && UserInGroup(Param("insidergroup")) %] if (document.getElementById('isprivate-'+id).checked) { document.getElementById('newcommentprivacy').checked = 'checked'; } [% END %] /* <textarea id="comment"> */ var textarea = document.getElementById('comment'); textarea.value += replytext; textarea.focus(); } if (typeof Node == 'undefined') { /* MSIE doesn't define Node, so provide a compatibility object */ window.Node = { TEXT_NODE: 3, ENTITY_REFERENCE_NODE: 5 }; } /* Concatenates all text from element's childNodes. This is used * instead of innerHTML because we want the actual text (and * innerText is non-standard). */ function getText(element) { var child, text = ""; for (var i=0; i < element.childNodes.length; i++) { child = element.childNodes[i]; var type = child.nodeType; if (type == Node.TEXT_NODE || type == Node.ENTITY_REFERENCE_NODE) { text += child.nodeValue; } else { /* recurse into nodes of other types */ text += getText(child); } } return text; }[% IF UserInGroup(Param('timetrackinggroup')) %] 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 %] function updateCommentTagControl(checkbox, form) { if (checkbox.checked) { form.comment.className='bz_private'; } else { form.comment.className=''; } } //--> </script><form name="changeform" method="post" action="process_bug.cgi"> <input type="hidden" name="delta_ts" value="[% bug.delta_ts %]"> <input type="hidden" name="longdesclength" value="[% bug.longdescs.size %]"> <input type="hidden" name="id" value="[% bug.bug_id %]">[%# *** Hardware Reporter Product OS AddCC *** %] <table> <tr> <td valign="top"> <table cellspacing="1" cellpadding="1"> <tr> <td align="right"> [% IF Param('useclassification') && bug.classification_id != 1 %] <b>[[% bug.classification FILTER html %]]</b> [% END %] <b>[% terms.Bug %]#:</b> </td> <td> <a href="[% Param('urlbase') %]show_bug.cgi?id=[% bug.bug_id %]"> [% bug.bug_id %]</a> </td> </tr> [% IF Param("usebugaliases") %] <tr> <td align="right"> <b>Alias:</b> </td> <td> <label for="alias" title="a name for the [% terms.bug %] that can be used in place of its ID number, f.e. when adding it to a list of dependencies"> <input id="alias" name="alias" value="[% bug.alias FILTER html %]" size="20" maxlength="20"> </label> </td> </tr> [% END %] <tr> <td align="right"> <b><u>P</u>roduct:</b> </td> [% PROCESS select selname => "product" accesskey => "p" %] </tr> [%# *** Component Version CC Priority Severity AssignedTo Milestone *** %] <tr> <td align="right"> <b> <a href="describecomponents.cgi?product=[% bug.product FILTER url_quote %]"> Co<u>m</u>ponent</a>: </b> </td> [% PROCESS select selname => "component" accesskey => "m" %] </tr> <tr> <td align="right"> <b> <a href="page.cgi?id=fields.html#status">Status</a>: </b> </td> <td>[% status_descs.${bug.bug_status} FILTER html %]</td> </tr> <tr> <td align="right"> <b> <a href="page.cgi?id=fields.html#resolution">Resolution</a>: </b> </td> <td> [% resolution_descs.${bug.resolution} FILTER html %] [% IF bug.resolution == "DUPLICATE" %] of [% terms.bug %] [%+ "${bug.dup_id}" FILTER bug_link(bug.dup_id) FILTER none %] [% END %] </td> </tr> <tr> <td align="right"> <b> <a href="page.cgi?id=fields.html#assigned_to">Assigned To</a>: </b> </td> <td>[% bug.assigned_to.identity FILTER html %]</td> </tr> </table> </td> <td valign="top"> <table cellspacing="1" cellpadding="1"> <tr> <td align="right"> <b><u>H</u>ardware:</b> </td> [% PROCESS select selname => "rep_platform" accesskey => "h" %] </tr> <tr> <td align="right"> <b><u>O</u>S:</b> </td> [% PROCESS select selname => "op_sys" accesskey => "o" %] </tr> <tr> <td align="right"> <b>Version:</b> </td> [% PROCESS select selname => "version" %] </tr> <tr> <td align="right"> <b><a href="page.cgi?id=fields.html#priority">Pr<u>i</u>ority</a>:</b> </td> [% PROCESS select selname => "priority" accesskey => "i" %] </tr> <tr> <td align="right"> <b><a href="page.cgi?id=fields.html#bug_severity">Severity</a>:</b> </td> [% PROCESS select selname = "bug_severity" %] </tr> [% IF Param("usetargetmilestone") && bug.target_milestone %] <tr> <td align="right"> <b> [% IF bug.milestoneurl %] <a href="[% bug.milestoneurl FILTER html %]"> [% END %] Target Milestone[% "</a>" IF bug.milestoneurl %]: </b> </td> [% PROCESS select selname = "target_milestone" %] </tr> [% END %] </table> </td> <td valign="top"> <table cellpadding="1" cellspacing="1"> <tr> <td align="right"> <b>Reporter:</b> </td> <td> <a href="mailto:[% bug.reporter.email FILTER html %]"> [% bug.reporter.identity FILTER html %]</a> </td> </tr> <tr> <td align="right" valign="top"> <b><u>A</u>dd CC:</b> </td> <td> [% INCLUDE global/userselect.html.tmpl name => "newcc" value => "" accesskey => "a" size => 30 multiple => 5 %] </td> </tr> <tr> <td align="right" valign="top"> <b>CC:</b> </td> <td valign="top"> [% IF bug.cc %] <select name="cc" multiple="multiple" size="5"> [% FOREACH c = bug.cc %] <option value="[% c FILTER html %]">[% c FILTER html %]</option> [% END %] </select> <br> <input type="checkbox" name="removecc">Remove selected CCs <br> [% ELSE %] <input type="hidden" name="cc" value=""> [% END %] </td> </tr> </table> </td> </tr> <tr> <td colspan="2"> <table cellspacing="1" cellpadding="1"> [%# *** QAContact URL Requests Summary Whiteboard Keywords *** %] [% IF Param('useqacontact') %]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -