blob: c562bf54dc897c4dd4225cc821e21cdb20a0ebbe [file] [log] [blame]
[%# 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.
#%]
[%# INTERFACE:
# product: object; the new product.
# versions: array; versions for the new product.
# components: array; components for the new product.
# milestones: array; milestones for the new product.
# defaults: hash; keys are names of fields, values are defaults for
# those fields
#
# verify_bug_groups: If groups need to be confirmed in addition to fields.
#%]
[% PROCESS global/header.html.tmpl
title = 'Verify New Product Details...'
style_urls = ['skins/standard/buglist.css']
%]
<form action="process_bug.cgi" method="post">
[% SET exclude_items = ['version', 'component', 'target_milestone'] %]
[% IF verify_bug_groups %]
[% exclude_items.push('groups', 'defined_groups') %]
[% END %]
[% Hook.process('exclude') %]
[% PROCESS "global/hidden-fields.html.tmpl"
exclude = '^' _ exclude_items.join('|') _ '$' %]
<input type="hidden" name="confirm_product_change" value="1">
[%# Verify the version, component, and target milestone fields. %]
<h3>Verify Version, Component
[%- ", Target Milestone"
IF Param("usetargetmilestone")
&& bug.check_can_change_field('target_milestone', 0, 1) %]</h3>
<p>
[% IF Param("usetargetmilestone")
&& bug.check_can_change_field('target_milestone', 0, 1)
%]
You are moving the [% terms.bug %](s) to the product
<b>[% product.name FILTER html %]</b>,
and the version, component, and/or target milestone fields are no longer
correct. Please set the correct version, component, and target milestone now:
[% ELSE %]
You are moving the [% terms.bug %](s) to the product
<b>[% product.name FILTER html %]</b>,
and the version and component fields are no longer correct.
Please set the correct version and component now:
[% END %]
</p>
<table>
<tr>
<td>
<b>Version:</b><br>
[% IF versions.size == 1 %]
[% SET default_version = versions.0 %]
[% ELSE %]
[% SET default_version = defaults.version %]
[% END %]
[% PROCESS "global/select-menu.html.tmpl"
name="version"
options=versions
default=default_version
size=10 %]
</td>
<td>
<b>Component:</b><br>
[% IF components.size == 1 %]
[% SET default_component = components.0 %]
[% ELSE %]
[% SET default_component = defaults.component %]
[% END %]
[% PROCESS "global/select-menu.html.tmpl"
name="component"
options=components
default=default_component
size=10 %]
</td>
[% IF Param("usetargetmilestone")
&& bug.check_can_change_field('target_milestone', 0, 1)
%]
<td>
<b>Target Milestone:</b><br>
[% PROCESS "global/select-menu.html.tmpl"
name="target_milestone"
options=milestones
default=defaults.milestone
size=10 %]
</td>
[% END %]
[% Hook.process('field') %]
</tr>
</table>
[% IF verify_bug_groups %]
[% mandatory_groups = [] %]
[% optional_groups = [] %]
[% FOREACH gid = product.group_controls.keys %]
[% group = product.group_controls.$gid %]
[% NEXT UNLESS group.group.is_active %]
[% IF group.membercontrol == constants.CONTROLMAPMANDATORY
|| (group.othercontrol == constants.CONTROLMAPMANDATORY && !user.in_group(group.group.name)) %]
[% mandatory_groups.push(group) %]
[% ELSIF (group.membercontrol != constants.CONTROLMAPNA && user.in_group(group.group.name))
|| group.othercontrol != constants.CONTROLMAPNA %]
[% optional_groups.push(group) %]
[% END %]
[% END %]
[% IF old_groups.size || optional_groups.size || mandatory_groups.size %]
<h3>Verify [% terms.Bug %] Group</h3>
[% END %]
[% IF old_groups.size %]
<p>These groups are not legal for the '[% product.name FILTER html %]'
product or you are not allowed to restrict [% terms.bugs %] to these groups.
[%+ terms.Bugs %] will no longer be restricted to these groups and may become
public if no other group applies:<br>
[% FOREACH group = old_groups %]
<input type="checkbox" id="group_[% group.id FILTER html %]"
name="groups" disabled="disabled" value="[% group.name FILTER html %]">
<label for="group_[% group.id FILTER html %]">
[% group.name FILTER html %]: [% group.description FILTER html %]
</label>
<br>
[% END %]
</p>
[% END %]
[% IF optional_groups.size %]
<p>These groups are optional. You can decide to restrict [% terms.bugs %] to
one or more of the following groups:<br>
[% IF multiple_bugs %]
<script type="text/javascript">
function turn_off(myself, id) {
var other_checkbox = document.getElementById(id);
if (myself.checked && other_checkbox) {
other_checkbox.checked = false;
}
}
</script>
<table id="groups_edit_multiple">
<tr>
<th class="narrow_column">Remove [% terms.bugs %] from this group</th>
<th class="narrow_column">Add [% terms.bugs %] to this group</th>
<th>Group Name</th>
</tr>
[% FOREACH group = optional_groups %]
<tr>
<td class="center">
<input type="checkbox" name="defined_groups"
id="defined_group_[% group.group.id FILTER html %]"
value="[% group.group.name FILTER html %]"
[% IF cgi.param("defined_groups").contains(group.group.name) %] checked="checked"[% END %]
onchange="turn_off(this, 'group_[% group.group.id FILTER html %]')">
</td>
<td class="center">
<input type="checkbox" name="groups"
id="group_[% group.group.id FILTER html %]"
value="[% group.group.name FILTER html %]"
[% IF cgi.param("groups").contains(group.group.name) %] checked="checked"[% END %]
onchange="turn_off(this, 'defined_group_[% group.group.id FILTER html %]')">
</td>
<td>
[% group.group.description FILTER html %]
</td>
</tr>
[% END %]
</table>
[% ELSE %]
[% FOREACH group = optional_groups %]
<input type="hidden" name="defined_groups"
value="[% group.group.name FILTER html %]">
<input type="checkbox" id="group_[% group.group.id FILTER html %]"
name="groups"
[% ' checked="checked"' IF ((group.membercontrol == constants.CONTROLMAPDEFAULT && user.in_group(group.group.name))
|| (group.othercontrol == constants.CONTROLMAPDEFAULT && !user.in_group(group.group.name))
|| cgi.param("groups").contains(group.group.name)) %]
value="[% group.group.name FILTER html %]">
<label for="group_[% group.group.id FILTER html %]">
[% group.group.name FILTER html %]: [% group.group.description FILTER html %]
</label>
<br>
[% END %]
[% END %]
</p>
[% END %]
[% IF mandatory_groups.size %]
<p>These groups are mandatory and [% terms.bugs %] will be automatically
restricted to these groups:<br>
[% FOREACH group = mandatory_groups %]
<input type="checkbox" id="group_[% group.group.id FILTER html %]"
checked="checked" disabled="disabled"
name="groups" value="[% group.group.name FILTER html %]">
<label for="group_[% group.group.id FILTER html %]">
[% group.group.name FILTER html %]: [% group.group.description FILTER html %]
</label>
<br>
[% END %]
</p>
[% END %]
[% END %]
<input type="submit" id="change_product" value="Commit">
</form>
<hr>
[%# If 'id' is defined, then we are editing a single bug.
# Else we are editing several bugs at once. %]
[% IF cgi.param('id') AND cgi.param('id').match('^\d+$') %]
[% id = cgi.param('id') %]
Cancel and Return to [% "$terms.bug $id" FILTER bug_link(id) FILTER none %]
[% ELSE %]
Cancel and Return to <a href="buglist.cgi?regetlastlist=1">the last search results</a>
[% END %]
[% PROCESS global/footer.html.tmpl %]