Line # Revision Author
1 3 ahitrov@rambler.ru % if ( $error ) {
2 <font color="red"><% $error %></font>
3 % } else {
4 % foreach my $id ( @values ) {
5 % if ( ref $id eq 'ARRAY' && scalar @$id == 2 ) {
6 % my $checked = exists $ids{$id->[0]} ? ' checked' : '';
7 <input <% $prop->{readonly} ? 'readonly ' : '' %>type="checkbox" name="<% $name %>_<% $id->[0] %>" value="<% $value %>" <% $checked %>><% $id->[1] %><br>
8 % } else {
9 % my $checked = exists $ids{$id} ? ' checked' : '';
10 <input <% $prop->{readonly} ? 'readonly ' : '' %>type="checkbox" name="<% $name %>_<% $id %>" value="<% $value %>" <% $checked %>><% $id %><br>
11 % }
12 % }
13 % }
14 <%args>
15
16 $object
17 $name => undef
18 $value => 1
19 $check => undef
20 $prop => {}
21
22 </%args>
23 <%init>
24
25 my ($objects, $error);
26
27 # ���� ��� �������� � ���� ���� integer[] �� ��� �������� ������, ���� � data, �� ������ �� ������.
28 # ��������� �����
29 my @ids = ref($object->$name) eq 'ARRAY' ? @{ $object->$name } : $object->$name;
30 my %ids = map { $_ => 1 } @ids;
31 my @values = exists $prop->{values} && ref $prop->{values} eq 'ARRAY' ? @{ $prop->{values} } :
32 exists $prop->{cases} && ref $prop->{cases} eq 'ARRAY' ? @{ $prop->{cases} } : ();
33
34 $error = '�� ��������� ����� �������� ��� ����' unless @values;
35
36 </%init>