420 lines
12 KiB
Cheetah
420 lines
12 KiB
Cheetah
[%# 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): Myk Melez <myk@mozilla.org>
|
|
# Max Kanat-Alexander <mkanat@bugzilla.org>
|
|
# Frédéric Buclin <LpSolit@gmail.com>
|
|
# Guy Pyrzak <guy.pyrzak@gmail.com>
|
|
#%]
|
|
|
|
[% dontchange = "--do_not_change--" %]
|
|
<input type="hidden" name="dontchange" value="[% dontchange FILTER html %]">
|
|
<input type="hidden" name="token" value="[% token FILTER html %]">
|
|
|
|
<script type="text/javascript">
|
|
function SetCheckboxes(value)
|
|
{
|
|
var elements = document.forms.changeform.getElementsByTagName('input'),
|
|
numelements = elements.length, item, i;
|
|
for (i = 0; i < numelements; i++)
|
|
{
|
|
item = elements[i];
|
|
if (item.type === 'checkbox' && item.name.match(/^id_/))
|
|
item.checked = value;
|
|
}
|
|
}
|
|
document.write(' <input type="button" name="uncheck_all" value="Uncheck All" onclick="SetCheckboxes(false);">');
|
|
document.write(' <input type="button" name="check_all" value="Check All" onclick="SetCheckboxes(true);">');
|
|
</script>
|
|
|
|
<hr />
|
|
|
|
<p style="font-size:smaller">
|
|
To change multiple [% terms.bugs %]:</p>
|
|
<ol style="font-size:smaller">
|
|
<li>Check the [% terms.bugs %] you want to change above.</li>
|
|
<li>Make your changes in the form fields below. If the change
|
|
you are making requires an explanation, include it in
|
|
the comments box.</li>
|
|
<li>Click the <em>Commit</em> button.</li>
|
|
</ol>
|
|
|
|
<table id="form">
|
|
<tr>
|
|
|
|
[% INCLUDE bug/field.html.tmpl
|
|
field = bug_fields.product
|
|
editable = 1
|
|
allow_dont_change = 1
|
|
dontchange = dontchange
|
|
%]
|
|
|
|
[% INCLUDE bug/field.html.tmpl
|
|
field = bug_fields.version
|
|
editable = 1
|
|
allow_dont_change = 1
|
|
dontchange = dontchange
|
|
override_legal_values = tweak_legal_values.version
|
|
%]
|
|
|
|
</tr>
|
|
<tr>
|
|
|
|
[% INCLUDE bug/field.html.tmpl
|
|
field = bug_fields.component
|
|
editable = 1
|
|
allow_dont_change = 1
|
|
dontchange = dontchange
|
|
override_legal_values = tweak_legal_values.component
|
|
%]
|
|
|
|
[% INCLUDE bug/field.html.tmpl
|
|
field = bug_fields.priority
|
|
editable = 1
|
|
allow_dont_change = 1
|
|
dontchange = dontchange
|
|
override_legal_values = tweak_legal_values.priority
|
|
%]
|
|
|
|
</tr>
|
|
<tr>
|
|
|
|
[% IF Bugzilla.get_field('rep_platform').enabled %]
|
|
[% INCLUDE bug/field.html.tmpl
|
|
field = bug_fields.rep_platform
|
|
editable = 1
|
|
allow_dont_change = 1
|
|
dontchange = dontchange
|
|
override_legal_values = tweak_legal_values.rep_platform
|
|
%]
|
|
[% END %]
|
|
|
|
[% INCLUDE bug/field.html.tmpl
|
|
field = bug_fields.bug_severity
|
|
editable = 1
|
|
allow_dont_change = 1
|
|
dontchange = dontchange
|
|
override_legal_values = tweak_legal_values.bug_severity
|
|
%]
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
[% IF Bugzilla.get_field('op_sys').enabled %]
|
|
[% INCLUDE bug/field.html.tmpl
|
|
field = bug_fields.op_sys
|
|
editable = 1
|
|
allow_dont_change = 1
|
|
dontchange = dontchange
|
|
override_legal_values = tweak_legal_values.op_sys
|
|
%]
|
|
[% END %]
|
|
|
|
[% IF Bugzilla.get_field('target_milestone').enabled %]
|
|
[% INCLUDE bug/field.html.tmpl
|
|
field = bug_fields.target_milestone
|
|
editable = 1
|
|
allow_dont_change = 1
|
|
dontchange = dontchange
|
|
override_legal_values = tweak_legal_values.target_milestone
|
|
%]
|
|
[% END %]
|
|
</tr>
|
|
|
|
[% IF user.is_timetracker %]
|
|
<tr>
|
|
<th><label for="estimated_time">Estimated Hours:</label></th>
|
|
<td>
|
|
<input id="estimated_time"
|
|
name="estimated_time"
|
|
value="[% dontchange FILTER html %]"
|
|
size="6">
|
|
</td>
|
|
<th><label for="deadline">Deadline (YYYY-MM-DD):</label></th>
|
|
<td>
|
|
<input id="deadline"
|
|
name="deadline"
|
|
value="[% dontchange FILTER html %]"
|
|
size="10">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th><label for="remaining_time">Remaining Hours:</label></th>
|
|
<td>
|
|
<input id="remaining_time"
|
|
name="remaining_time"
|
|
value="[% dontchange FILTER html %]"
|
|
size="6">
|
|
</td>
|
|
<th> </th>
|
|
<td> </td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
<tr>
|
|
<th><label for="assigned_to">Assignee:</label></th>
|
|
<td colspan="3">
|
|
[% INCLUDE global/userselect.html.tmpl
|
|
id => "assigned_to"
|
|
name => "assigned_to"
|
|
value => dontchange
|
|
size => 32
|
|
%]
|
|
<input type="checkbox" id="set_default_assignee" name="set_default_assignee" value="1">
|
|
<label for="set_default_assignee">Reset Assignee to default</label>
|
|
</td>
|
|
</tr>
|
|
|
|
[% IF Bugzilla.get_field('qa_contact').enabled %]
|
|
<tr>
|
|
<th><label for="qa_contact">QA Contact:</label></th>
|
|
<td colspan="3">
|
|
[% INCLUDE global/userselect.html.tmpl
|
|
id => "qa_contact"
|
|
name => "qa_contact"
|
|
value => dontchange
|
|
size => 32
|
|
%]
|
|
<input type="checkbox" id="set_default_qa_contact" name="set_default_qa_contact" value="1">
|
|
<label for="set_default_qa_contact">Reset QA Contact to default</label>
|
|
</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
<tr>
|
|
|
|
<th><label for="masscc">CC List:</label></th>
|
|
<td colspan="3">
|
|
<input id="masscc" name="masscc" size="32">
|
|
<select name="ccaction">
|
|
<option value="add">Add these to the CC List</option>
|
|
<option value="remove">Remove these from the CC List</option>
|
|
</select>
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
[% IF use_keywords %]
|
|
<tr>
|
|
<th>
|
|
<script type="text/javascript">
|
|
var emptyKeywordsOptions = "null";
|
|
addListener(window, 'load', function() {
|
|
new SimpleAutocomplete("keywords",
|
|
function(h) { keywordAutocomplete(h, emptyKeywordsOptions); },
|
|
{ emptyText: 'No keywords found', multipleDelimiter: "," }
|
|
);
|
|
});
|
|
</script>
|
|
<label for="keywords">
|
|
<a href="describekeywords.cgi">Keywords</a>:
|
|
</label>
|
|
</th>
|
|
<td colspan="3">
|
|
<input id="keywords" name="keywords" size="32">
|
|
<select name="keywordaction">
|
|
<option value="add">Add these keywords</option>
|
|
<option value="delete">Delete these keywords</option>
|
|
<option value="makeexact">Make the keywords be exactly this list</option>
|
|
</select>
|
|
</td>
|
|
|
|
</tr>
|
|
[% END %]
|
|
|
|
<tr>
|
|
<th>
|
|
<label for="dependson">
|
|
Depends On:
|
|
</label>
|
|
</th>
|
|
<td colspan="3">
|
|
<input id="dependson" name="dependson" size="32">
|
|
<select name="dependson_action">
|
|
<option value="add">Add these IDs</option>
|
|
<option value="remove">Delete these IDs</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th>
|
|
<label for="blocked">Blocks:</label>
|
|
</th>
|
|
<td colspan="3">
|
|
<input id="blocked" name="blocked" size="32">
|
|
<select name="blocked_action">
|
|
<option value="add">Add these IDs</option>
|
|
<option value="remove">Delete these IDs</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
|
|
[% IF Bugzilla.get_field('status_whiteboard').enabled %]
|
|
<tr>
|
|
<td align="right">
|
|
<b>Status Whiteboard:</b>
|
|
</td>
|
|
<td colspan="7">
|
|
<input name="status_whiteboard" value="[% dontchange FILTER html %]" size="60" />
|
|
</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% FOREACH f = tweak_custom_fields %]
|
|
<tr>
|
|
[% INCLUDE bug/field.html.tmpl
|
|
field = f
|
|
editable = 1
|
|
allow_dont_change = 1
|
|
dontchange = dontchange
|
|
value = dontchange
|
|
override_legal_values = tweak_legal_values.${f.name}
|
|
%]
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% Hook.process("after_custom_fields") %]
|
|
|
|
</table>
|
|
|
|
<b><label for="comment">Additional Comments:</label></b>
|
|
[% IF user.is_insider %]
|
|
<input type="checkbox" name="commentprivacy" value="1"
|
|
id="newcommentprivacy"
|
|
onClick="updateCommentTagControl(this, form)"/>
|
|
<label for="newcommentprivacy">
|
|
Make comment private (visible only to members of the
|
|
<strong>[% Param('insidergroup') FILTER html %]</strong> group)
|
|
</label>
|
|
[% END %]
|
|
<input type="checkbox" name="commentsilent" value="1"
|
|
id="newcommentsilent"/>
|
|
<label for="newcommentsilent">Silent</label>
|
|
<br>
|
|
[% INCLUDE global/textarea.html.tmpl
|
|
name = 'comment'
|
|
id = 'comment'
|
|
minrows = 5
|
|
maxrows = 25
|
|
cols = constants.COMMENT_COLS
|
|
%]<br>
|
|
|
|
[% Hook.process('before_groups') %]
|
|
|
|
[% IF groups.size > 0 %]
|
|
|
|
<b>Groups:</b><br>
|
|
<table border="1">
|
|
<tr>
|
|
<th>Don't<br>change<br>this group<br>restriction</th>
|
|
<th>Remove<br>[% terms.bugs %]<br>from this<br>group</th>
|
|
<th>Add<br>[% terms.bugs %]<br>to this<br>group</th>
|
|
<th>Group Name:</th>
|
|
</tr>
|
|
|
|
[% FOREACH group = groups %]
|
|
<tr>
|
|
<td align="center">
|
|
<input type="radio" name="bit-[% group.id %]" value="-1" checked="checked">
|
|
</td>
|
|
<td align="center">
|
|
<input type="radio" name="bit-[% group.id %]" value="0">
|
|
</td>
|
|
[% IF group.is_active %]
|
|
<td align="center">
|
|
<input type="radio" name="bit-[% group.id %]" value="1">
|
|
</td>
|
|
[% ELSE %]
|
|
<td> </td>
|
|
[% foundinactive = 1 %]
|
|
[% END %]
|
|
|
|
<td>
|
|
[% SET inactive = !group.is_active %]
|
|
[% group.description FILTER html_light FILTER inactive(inactive) %]
|
|
</td>
|
|
|
|
</tr>
|
|
[% END %]
|
|
|
|
</table>
|
|
|
|
[% IF foundinactive %]
|
|
<p style="font-size:smaller">(Note: [% terms.Bugs %] may not be added to [% FILTER inactive %]inactive
|
|
groups[% END %], only removed.)</p>
|
|
[% END %]
|
|
|
|
[% END %]
|
|
|
|
<label for="bug_status"><b>Status:</b></label>
|
|
[% PROCESS status_section %]
|
|
<input type="submit" id="commit" value="Commit">
|
|
|
|
[% IF Param('move-enabled') && user.is_mover %]
|
|
<input type="submit" name="action" id="action" value="[% Param('move-button-text') %]">
|
|
[% END %]
|
|
|
|
[%############################################################################%]
|
|
[%# Status Block #%]
|
|
[%############################################################################%]
|
|
|
|
[% BLOCK status_section %]
|
|
[% all_open_bugs = !current_bug_statuses.containsany(closedstates) %]
|
|
[% all_closed_bugs = !current_bug_statuses.containsany(openstates) %]
|
|
[% closed_status_array = [] %]
|
|
|
|
<select name="bug_status" id="bug_status">
|
|
<option value="[% dontchange FILTER html %]" selected="selected">[% dontchange FILTER html %]</option>
|
|
|
|
[% FOREACH bug_status = new_bug_statuses %]
|
|
<option value="[% bug_status.name FILTER html %]">
|
|
[% bug_status.name FILTER html %]
|
|
</option>
|
|
[% IF !bug_status.is_open %]
|
|
[% filtered_status = bug_status.name FILTER js %]
|
|
[% closed_status_array.push( filtered_status ) %]
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[%# If all the bugs being changed are closed, allow the user to change their resolution. %]
|
|
[% IF all_closed_bugs %]
|
|
[% filtered_status = dontchange FILTER js %]
|
|
[% closed_status_array.push( filtered_status ) %]
|
|
[% END %]
|
|
</select>
|
|
|
|
<span id="resolution_settings">
|
|
<select id="resolution" name="resolution">
|
|
<option value="[% dontchange FILTER html %]" selected >[% dontchange FILTER html %]</option>
|
|
[% FOREACH r = tweak_legal_values.resolution %]
|
|
[% NEXT IF !r.name %]
|
|
[% NEXT IF r.name == Param('duplicate_resolution') || r.name == "MOVED" %]
|
|
<option value="[% r.name FILTER html %]">[% r.name FILTER html %]</option>
|
|
[% END %]
|
|
</select>
|
|
</span>
|
|
|
|
<script type="text/javascript">
|
|
[%# FIXME Move close_status_array into js resource data %]
|
|
var close_status_array = new Array("[% closed_status_array.join('", "') FILTER none %]");
|
|
addListener('bug_status', "change", function() { showHideStatusItems('', '') });
|
|
addListener(window, 'load', function() { showHideStatusItems('', '') });
|
|
</script>
|
|
|
|
[% END %]
|