blob: e9f56b7ca617170cfdb02f9826461ca23a33ee9b (
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
|
[%# 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: string; the name of the menu.
#
# multiple: boolean; whether or not the menu is multi-select
#
# size: integer; the number of items to display at once
#
# options: array or hash; the items with which to populate the array.
# If a hash is passed, the hash keys become the names displayed
# to the user while the hash values become the value of the item.
#
# default: string; the item selected in the menu by default.
#
# onchange: code; JavaScript to be run when the user changes the value
# selected in the menu.
#%]
[%# Get the scalar representation of the options reference,
# which looks like "ARRAY(0xA352BA3F)" or "HASH(0xA352BA3F)",
# so we can figure out whether it is a reference to an array
# or a hash.
#%]
[% options_type = BLOCK %][% options %][% END %]
<select name="[% name FILTER html %]"
[% IF onchange %]onchange="[% onchange FILTER html %]"[% END %]
[% IF multiple %] multiple [% END %]
[% IF size %] size="[% size %]" [% END %]>
[% IF options_type.search("ARRAY") %]
[% FOREACH value = options %]
<option value="[% value FILTER html %]"
[% " selected" IF value == default %]>
[% value FILTER html %]
</option>
[% END %]
[% ELSIF options_type.search("HASH") %]
[% FOREACH option = options %]
<option value="[% option.value FILTER html %]"
[% " selected" IF option.value == default %]>
[% option.key FILTER html %]
</option>
[% END %]
[% END %]
</select>
|