[%# 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>
  #                 Erik Stambaugh <not_erik@dasbistro.com>
  #%]

[%# 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
  #%]

[%# use the global field descs %]
[%# This lists fields which use the user auto-completion feature and which
  # are not listed in field_descs. %]
[%# FIXME move away from here %]
[% 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",
     # Used by superworktime
     "worktime_user"           => "Worktime user",
   }
%]
[% IF matchsuccess == 1 %]
  [% PROCESS global/header.html.tmpl title="Confirm Match" %]

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

  <p>
    [% IF matchmultiple %]
      [% terms.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>
    [% terms.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 border="0">
    <tr>
      <td colspan="2">
        <hr width="100%" size="1">
      </td>
    </tr>

  [%# this is messy to allow later expansion %]

  [% exclude_hash = {
    Bugzilla_login => 1
    Bugzilla_password => 1
  } %]
  [% FOREACH field = matches %]
    [% exclude_hash.${field.key} = 1 %]
    <tr>
      <td align="left" valign="top">
        [% PROCESS field_names field_name=field.key %]:
      </td>
      <td align="left" valign="top">
          [% 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' %]
                    <font color="#FF0000">
                      matches multiple users.
                    </font>
                    Please go back and try again with a more specific
                    name/address.
                  [% ELSE %]
                    [% IF NOT first_field; first_field = field.key; END %]
                    [% 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 %]" onkeypress="var e=event||window.event;if((e.keyCode == 0xA)||(e.keyCode == 0xD))document.getElementById('continue').click()"
                     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>
                  <input type="hidden" name="[% field.key | html %]" value="[% query.value.users.0.login | html %]" />
                [% END %]
            [% ELSE %]
                [% IF (query.key.length < 3) && !Param('emailsuffix') %]
                  <font color="#FF0000">was too short for substring match
                  (minimum 3 characters)</font>
                [% ELSE %]
                  <font color="#FF0000">did not match anything</font>
                [% END %]
            [% END %]
            </div>
        [% END %]
      </td>
    </tr>
    <tr>
      <td colspan="2">
        <hr width="100%" size="1">
      </td>
    </tr>
  [% END %]

  </table>

[% IF matchsuccess == 1 %]

  [% PROCESS "global/hidden-fields.html.tmpl" exclude_hash = exclude_hash %]

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

  </form>

[% END %]

  <script type="text/javascript">
  <!--
  document.getElementById('[% first_field || 'continue' %]').focus();
  //-->
  </script>

[% 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 %] requestee
  [% ELSE %]
    [% field_name FILTER html %]
  [% END %]
[% END %]
