[%# 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:
  # fields: hash/record; the fields being matched, each of which has:
  #     type: single|multi: whether or not the user can select multiple matches
  #     flag_type: for flag requestee fields, the type of flag being requested
  # matches: hash; Hierarchical.  The levels go like this:
  #     field_name {
  #         pattern_text {
  #             'users'  = @user_list           (user objects)
  #             'status' = success|fail|trunc   (result of search.
  #                             'trunc' (truncated) means max was reached)
  #         }
  #     }
  # script: string; The name of the calling script, used to create a
  #     self-referential URL
  #%]

[%# This lists fields which use the user auto-completion feature and which
  # are not listed in field_descs. %]
[% field_labels = { # Used by editcomponents.cgi
                    "initialcc"               => "Default CC List",
                    "initialowner"            => "Default Assignee",
                    "initialqacontact"        => "Default QA Contact",
                    # Used by process_bug.cgi
                    "masscc"                  => "CC List",
                    # Used by request.cgi
                    "requester"               => "Requester",
                    "requestee"               => "Requestee",
                    # Used by userprefs.cgi
                    "new_watchedusers"        => "Watch List",

   }
%]
[% IF matchsuccess == 1 %]
  [% PROCESS global/header.html.tmpl title="Confirm Match" %]

  [% USE Bugzilla %]

  <form method="post" 
  [% IF script -%]
    action="[% script %]"
  [%- END -%]
  [% IF Bugzilla.cgi.param("data") %]
    enctype="multipart/form-data"
  [% END %]
  >

  <p>
    [% IF matchmultiple %]
      Bugzilla cannot make a conclusive match for one or more
      of the names and/or email addresses you entered on the previous page.
      <br>Please examine the lists of potential matches below and select the
      ones you want,
    [% ELSE %]
      [% terms.Bugzilla %] is configured to require verification whenever
      you enter a name or partial email address.
      <br>Below are the names/addresses you entered and the matched accounts.
      Please confirm that they are correct,
    [% END %]
    or go back to the previous page to revise the names you entered.
  </p>
[% ELSE %]
  [% PROCESS global/header.html.tmpl title="Match Failed" %]
  <p>
    Bugzilla was unable to make any match at all for one or more of
    the names and/or email addresses you entered on the previous page.
    [% IF !user.id %]
      <b>Note: You are currently logged out. Only exact matches against e-mail
      addresses will be performed.</b>
    [% END %]
  </p>
  <p>Please go back and try other names or email addresses.</p>
[% END %]

<table id="user_match_table">
  [% FOREACH field = matches %]
    <tr>
      <td>
        [% PROCESS field_names field_name=field.key %]:
      </td>
      <td>
          [% FOREACH query = field.value %]
            <div class="user_match">
              <b>[% query.key FILTER html %]</b>
            [% IF query.value.users.size %]
                [% IF query.value.users.size > 1 %]
                  [% IF query.value.status == 'fail' %]
                    <span class="warning">
                      matches multiple users.
                    </span>
                    Please go back and try again with a more specific
                    name/address.
                  [% ELSE %]
                    [% IF query.value.status == 'trunc' %]
                      matched
                      more than the maximum
                      of [% query.value.users.size %] users:<br>
                    [% ELSE %]
                      matched:<br>
                    [% END %]
                    <select name="[% field.key FILTER html %]"
                     id="[% field.key FILTER html %]"
                      [% IF fields.${field.key}.type == 'multi' %]
                        multiple="multiple"
                        [% IF query.value.users.size > 5 %]
                         size="5"
                        [% ELSE %]
                         size="[% query.value.users.size %]"
                        [% END %]
                      [% END %]
                    >
                      [% FOREACH match = query.value.users %]
                        <option value="[% match.login FILTER html %]">
                         [%- match.identity FILTER html -%]
                        </option>
                      [% END %]
                    </select>
                  [% END %]
                [% ELSE %]
                  matched
                  <b>[% query.value.users.0.identity FILTER html %]</b>
                [% END %]
            [% ELSE %]
              <span class="warning">
                [% IF query.key.length < 3 %]
                  was too short for substring match (minimum 3 characters)
                [% ELSE %]
                  did not match anything
                [% END %]
              </span>
            [% END %]
            </div>
        [% END %]
      </td>
    </tr>
  [% END %]
</table>

[% IF matchsuccess == 1 %]

  [% SET exclude_these = ['Bugzilla_login', 'Bugzilla_password'] %]
  [% FOREACH key IN matches.keys %]
    [% exclude_these.push(key) IF Bugzilla.cgi.param(key) == '' %]
  [% END %]
  [% SET exclude = '^' _ exclude_these.join('|') _ '$' %]
  [% PROCESS "global/hidden-fields.html.tmpl" exclude = exclude %]

  <p>
    <input type="submit" id="continue" value="Continue">
  </p>

  </form>

[% END %]

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


[% BLOCK field_names %]

  [% IF field_descs.$field_name %]
    [% field_descs.$field_name FILTER html %]
  [% ELSIF field_labels.$field_name %]
    [% field_labels.$field_name FILTER html %]
  [% ELSIF field_name.match("^requestee") %]
    [% fields.${field_name}.flag_type.name FILTER html %] requestee
  [% ELSE %]
    [% field_name FILTER html %]
  [% END %]

[% END %]
