Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 012f8a7f

Von Moritz Bunkus vor fast 8 Jahren hinzugefügt

  • ID 012f8a7fd344eb86d157a771c796d4bad382fb63
  • Vorgänger 25000c1e
  • Nachfolger db1d60aa

Multibox entfernen

Inzwischen wird das Template nicht mehr benutzt.

Unterschiede anzeigen:

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