[%# 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:
  # exclude: string; a regular expression matching fields to exclude
  #   from the list of hidden fields generated by this template
  #%]

[%# The global Bugzilla->cgi object is used to obtain form variable values. %]
[% USE Bugzilla %]
[% cgi = Bugzilla.cgi %]

[%# Generate hidden form fields for non-excluded fields. %]
[% FOREACH field = cgi.param() %]
  [% NEXT IF exclude && field.search(exclude) %]
  [%# The '.slice(0)' bit is here to force the 'param(field)' to be evaluated
      in a list context, so we can avoid extra code checking for single valued or
      empty fields %]
  [% IF field == "data" && cgi.param("data") %]
    <div class="box">
      <p>
        We were unable to store the file you uploaded because of incomplete information
        in the form you just submitted. Because we are unable to retain the file between
        form submissions, you must re-attach the file in addition to completing the
        remaining missing information above.
      </p>
      <p>
        Please re-attach the file <b>[% cgi.param(field) FILTER html %]</b> in
        the field below:
      </p>
      <p>
        <input type="file" id="data" name="data" size="50">
      </p>
    </div>
  [% ELSE %]
    [% FOREACH mvalue = cgi.param(field).slice(0) %]
      <input type="hidden" name="[% field FILTER html %]"
             value="[% mvalue FILTER html_linebreak %]">
    [% END %]
  [% END %]
[% END %]
