5 This template makes an input box for you,
6 decides wether it should be a text field or a drop down box,
7 generates the HTML code, and fixes everything just right.
9 call: INCLUDE generic/multibox.html var = var, var2 = ....
11 options and variables:
12 name : name of the select/textfield
13 id : id of the select/textfield, optional, defaults to name
14 default : entered/selected value. defaults to a dereference of name, since it is usually set to that for update mechanisms
15 id_key : key that holds the id in each row.
16 id_sub : name of a perl sub that calculates the id for each row. will be called with a hashref.
17 label_key : key that holds the label in each row.
18 label_sub : name of a perl sub that calculates the label for each row. will be called with a hashref.
19 DATA : the actual data, expected to be arrayref of hashrefs, usually what's returned by the all_vc routines.
20 show_empty : show an empty first line in select boxes. defaults to false
21 style : additional style information
22 onChange : java magic on change
23 select : java function call for a selection popup or other magic
24 allow_textbox : allow to display a textbox instead of a drop down box if there are more entries than 'limit' entries.
25 limit : defines the limit of entries, after which a textbox is generated. defaults to vclimit, or, failing to find that, 200.
26 select_name : if a select is displayed, use a different name. ex.: department for textinput, but department_id for selects
27 readonly : softly prevents modification
30 limit = limit != '' ? limit : vclimit != '' ? vclimit : 200
31 show_text = allow_textbox and DATA.size and limit < DATA.size ? 1 : 0
32 id = id != '' ? id : name
33 default = default != '' ? default : $name
36 name = (select_name != '' and ! show_text) ? select_name : name
38 [%- FOREACH row = DATA %]
40 row.id = row.$id_key != '' ? row.$id_key : $id_sub(row)
41 row.label = row.$label_key != '' ? row.$label_key
42 : $label_sub(row) != '' ? $label_sub(row)
44 row.selected = default == row.id
49 [%- IF name %] name="[% HTML.escape(name) %]"[% END -%]
50 [%- IF id %] id="[% HTML.escape(id) %]"[% END -%]
51 [%- IF default %] value="[% HTML.escape(default) %]"[% END -%]
52 [%- IF style %] style="[% HTML.escape(style) %]"[% END -%]
53 [%- IF readonly %] readonly[% END -%]
56 <input type="button" onclick="[% select %]" value="?">
60 [%- IF name %] name="[% HTML.escape(name) %]"[% END -%]
61 [%- IF id %] id="[% HTML.escape(id) %]"[% END -%]
62 [%- IF style %] style="[% HTML.escape(style) %]"[% END -%]
63 [%- IF onChange %] onChange="[% HTML.escape(onChange) %]"[% END -%]
64 [%- IF readonly %] disabled[% END -%]
67 <option value=""></option>
69 [%- FOREACH row = DATA %]
70 <option value="[% row.id | html %]"[% IF row.selected %] selected[% END %]>[% HTML.escape(row.label) %]</option>