summaryrefslogtreecommitdiffstats
path: root/template/en/default/global/userselect.html.tmpl
blob: f7dc03d8992fb7919bec737e1bdb14650d8a0f41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
[%# 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:
  # name: mandatory; field name
  # id: optional; field id
  # value: optional; default field value/selection
  # classes: optional; an array of classes to be added
  # 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 for "" to start of select
  # hyphenok: optional, select only; if true, prepend menu option for "-" 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
  # field_title: optional, extra information to display as a tooltip
  # placeholder: optional, input only; placeholder attribute value
  # mandatory: optional; if true, the field cannot be empty.
  #%]

[% IF Param("usemenuforusers") %]
<select name="[% name FILTER html %]"
  [% IF id %] id="[% id FILTER html %]" [% END %]
  [% IF classes %] class="[% classes.join(' ') 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 field_title %] title="[% field_title FILTER html %]" [% END %]
  [% IF mandatory %] required [% END %]
>
  [% IF emptyok %]
    <option value=""></option>
  [% END %]
  [% IF hyphenok %]
    <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 %]
  [%
    IF id && feature_enabled('jsonrpc') && Param('ajax_user_autocompletion');
      IF !classes.defined;
        classes = [];
      END;
      classes.push("bz_autocomplete_user");
    END;
  %]
  <input
    name="[% name FILTER html %]"
    value="[% value FILTER html %]"
    [% IF classes %] class="[% classes.join(' ') 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 field_title %] title="[% field_title FILTER html %]" [% END %]
    [% IF size %] size="[% size FILTER html %]" [% END %]
    [% IF placeholder %] placeholder="[% placeholder FILTER html %]" [% END %]
    [% IF id %] id="[% id FILTER html %]" [% END %]
    [% IF mandatory %] required [% END %]
    [% IF multiple %] data-multiple="1" [% END %]
  >
[% END %]