[%# 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): Joel Peshkin <bugreport@peshkin.net>
  #
  #%]

[% PROCESS global/variables.none.tmpl %]
[% title = BLOCK %]
  Confirm Group Control Change for product '[%- product.name FILTER html %]'
[% END %]

[% PROCESS global/header.html.tmpl title = title %]
[% FOREACH group = mandatory_groups %]
<P>
group '[% group.name FILTER html %]' impacts [% group.count %] 
[%+ terms.bugs %] for
which the group is newly mandatory and will be added.
[% END %]

[% FOREACH group = na_groups %]
<P>
group '[% group.name FILTER html %]' impacts [% group.count %]&nbsp;
[% terms.bugs %] for which the group is no longer applicable and will
be removed.[% END %]
<form action="editproducts.cgi" method="post" >

  [% PROCESS "global/hidden-fields.html.tmpl" exclude="^Bugzilla_(login|password)$" %]

  <br>
     Click "Continue" to proceed with the change including the changes
     indicated above.  If you do not want these changes, use "back" to
     return to the previous page.
  <p>
    <input type="hidden" name="confirmed" value="confirmed">
    <input type="submit" id="update" value="Continue">
  </p>

</form>


[% PROCESS global/footer.html.tmpl %]


