Revision 012f8a7f
Von Moritz Bunkus vor fast 8 Jahren hinzugefügt
templates/webpages/generic/multibox.html | ||
---|---|---|
1 |
[%- USE HTML %] |
|
2 |
[%#- |
|
3 |
Multibox |
|
4 |
|
|
5 |
This template makes an input box for you, |
|
6 |
decides whether it should be a text field or a drop down box, |
|
7 |
generates the HTML code, and fixes everything just right. |
|
8 |
|
|
9 |
call: PROCESS generic/multibox.html var = var, var2 = .... |
|
10 |
|
|
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 |
|
28 |
class : CSS class names (optional) |
|
29 |
-%] |
|
30 |
[%- |
|
31 |
Multibox__limit = limit != '' ? limit : vclimit != '' ? vclimit : 200 |
|
32 |
Multibox__show_text = allow_textbox and DATA.size and Multibox__limit < DATA.size ? 1 : 0 |
|
33 |
Multibox__id = id != '' && id * 1 != id ? id : name |
|
34 |
Multibox__default = default != '' ? default : $name |
|
35 |
Multibox__name = (select_name != '' and ! Multibox__show_text) ? select_name : name |
|
36 |
-%] |
|
37 |
[%- IF Multibox__show_text %] |
|
38 |
<input type="text" |
|
39 |
[%- IF Multibox__name %] name="[% Multibox__name | html %]"[% END -%] |
|
40 |
[%- IF Multibox__id %] id="[% Multibox__id | html %]"[% END -%] |
|
41 |
[%- IF Multibox__default %] value="[% Multibox__default | html %]"[% END -%] |
|
42 |
[%- IF style %] style="[% style | html %]"[% END -%] |
|
43 |
[%- IF class %] class="[% class | html %]"[% END -%] |
|
44 |
[%- IF readonly %] readonly[% END -%] |
|
45 |
[%- -%]> |
|
46 |
[%- IF select -%] |
|
47 |
<input type="button" onclick="[% select %]" value="?"> |
|
48 |
[%- END -%] |
|
49 |
[%- ELSE %] |
|
50 |
<select |
|
51 |
[%- IF Multibox__name %] name="[% Multibox__name | html %]"[% END -%] |
|
52 |
[%- IF Multibox__id %] id="[% Multibox__id | html %]"[% END -%] |
|
53 |
[%- IF style %] style="[% style | html %]"[% END -%] |
|
54 |
[%- IF class %] class="[% class | html %]"[% END -%] |
|
55 |
[%- IF onChange %] onChange="[% onChange | html %]"[% END -%] |
|
56 |
[%- IF readonly %] disabled[% END -%] |
|
57 |
[%- -%]> |
|
58 |
[%- IF show_empty %] |
|
59 |
<option value=""></option> |
|
60 |
[%- END %] |
|
61 |
[%- FOREACH row = DATA %] |
|
62 |
[%- |
|
63 |
Multibox__row_id = row.$id_key != '' ? row.$id_key : $id_sub(row) |
|
64 |
Multibox__row_label = row.$label_key != '' ? row.$label_key |
|
65 |
: $label_sub(row) != '' ? $label_sub(row) |
|
66 |
: Multibox__row_id |
|
67 |
Multibox__row_selected = Multibox__default == Multibox__row_id |
|
68 |
%] |
|
69 |
<option value="[% Multibox__row_id | html %]"[% IF Multibox__row_selected %] selected[% END %]>[% Multibox__row_label | html %]</option> |
|
70 |
[%- END %] |
|
71 |
</select> |
|
72 |
[%- END %] |
Auch abrufbar als: Unified diff
Multibox entfernen
Inzwischen wird das Template nicht mehr benutzt.