[%# 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.
  #
  # Contributor(s): Byron Jones <bugzilla@glob.com.au>
  #                 Frédéric Buclin <LpSolit@gmail.com>
  #%]

[%# INTERFACE:
  # name: mandatory; field name
  # id: optional; field id
  # value: optional; default field value/selection
  # onchange: optional; onchange attribute value
  # disabled: optional; if true, the field is disabled
  # accesskey: optional, input only; accesskey attribute value
  # size: optional, input only; size attribute value
  # emptyok: optional, select only;  if true, prepend menu option to start of select
  # multiple: optional, do multiselect box, value is size (height) of box
  # custom_userlist: optional, specify a limited list of users to use
  #%]

[% IF Param("usemenuforusers") %]
<select name="[% name FILTER html %]"
  [% IF id %] id="[% id FILTER html %]" [% END %]
  [% IF onchange %] onchange="[% onchange FILTER html %]" [% END %]
  [% IF disabled %] disabled="[% disabled FILTER html %]" [% END %]
  [% IF accesskey %] accesskey="[% accesskey FILTER html %]" [% END %]
  [% IF multiple %] multiple="multiple" size="[% multiple FILTER html %]" [% END %]
>
  [% IF emptyok %]
    <option value=""></option>
  [% END %]

  [% UNLESS custom_userlist %]
    [% custom_userlist = user.get_userlist %]
  [% END %]

  [% SET selected = {} %]
  [% IF value.defined %]
    [% FOREACH selected_value IN value.split(', ') %]
      [% SET selected.$selected_value = 1 %]
    [% END %]
  [% END %]

  [% FOREACH tmpuser = custom_userlist %]
    [% IF tmpuser.visible OR selected.${tmpuser.login} == 1 %]
      <option value="[% tmpuser.login FILTER html %]"
        [% IF selected.${tmpuser.login} == 1 %]
          selected="selected"
          [%# A user account appears only once. Remove it from the list, so that
            # we know if there are some selected accounts which have not been listed. %]
          [% selected.delete(tmpuser.login) %]
        [% END %]
      >[% tmpuser.identity FILTER html %]</option>
    [% END %]
  [% END %]

  [%# If the list is not empty, this means some accounts have not been mentioned yet. %]
  [% FOREACH selected_user = selected.keys %]
    <option value="[% selected_user FILTER html %]" selected="selected">[% selected_user FILTER html %]</option>
  [% END %]
</select>
[% ELSE %]
<input
  name="[% name FILTER html %]"
  value="[% value FILTER html %]"
  [% IF onchange %] onchange="[% onchange FILTER html %]" [% END %]
  [% IF disabled %] disabled="[% disabled FILTER html %]" [% END %]
  [% IF accesskey %] accesskey="[% accesskey FILTER html %]" [% END %]
  [% IF size %] size="[% size FILTER html %]" [% END %]
  [% IF id %] id="[% id FILTER html %]" [% END %]
>
[% END %]


