|
Lines 91-96
sub _get_chunk {
Link Here
|
| 91 |
$chunk->{'languages'} = getTranslatedLanguages( $interface, $theme, undef, $current_languages ); |
91 |
$chunk->{'languages'} = getTranslatedLanguages( $interface, $theme, undef, $current_languages ); |
| 92 |
$chunk->{'type'} = 'languages'; |
92 |
$chunk->{'type'} = 'languages'; |
| 93 |
} elsif ( $options{ 'choices' } ) { |
93 |
} elsif ( $options{ 'choices' } ) { |
|
|
94 |
my $add_blank; |
| 94 |
if ( $options{'choices'} && ref( $options{ 'choices' } ) eq '' ) { |
95 |
if ( $options{'choices'} && ref( $options{ 'choices' } ) eq '' ) { |
| 95 |
if ( $options{'choices'} eq 'class-sources' ) { |
96 |
if ( $options{'choices'} eq 'class-sources' ) { |
| 96 |
my $sources = GetClassSources(); |
97 |
my $sources = GetClassSources(); |
|
Lines 99-104
sub _get_chunk {
Link Here
|
| 99 |
$options{'choices'} = { map { $_ => $_ } getallthemes( 'opac' ) } |
100 |
$options{'choices'} = { map { $_ => $_ } getallthemes( 'opac' ) } |
| 100 |
} elsif ( $options{'choices'} eq 'staff-templates' ) { |
101 |
} elsif ( $options{'choices'} eq 'staff-templates' ) { |
| 101 |
$options{'choices'} = { map { $_ => $_ } getallthemes( 'intranet' ) } |
102 |
$options{'choices'} = { map { $_ => $_ } getallthemes( 'intranet' ) } |
|
|
103 |
} elsif ( $options{choices} eq 'patron-categories' ) { |
| 104 |
$options{choices} = { map { $_->categorycode => $_->description } Koha::Patron::Categories->search }; |
| 105 |
$add_blank = 1; |
| 102 |
} else { |
106 |
} else { |
| 103 |
die 'Unrecognized source of preference values: ' . $options{'choices'}; |
107 |
die 'Unrecognized source of preference values: ' . $options{'choices'}; |
| 104 |
} |
108 |
} |
|
Lines 106-117
sub _get_chunk {
Link Here
|
| 106 |
|
110 |
|
| 107 |
$value ||= 0; |
111 |
$value ||= 0; |
| 108 |
|
112 |
|
| 109 |
$chunk->{'type'} = 'select'; |
113 |
$chunk->{'type'} = ( $options{class} && $options{class} eq 'multiple' ) ? 'multiple' : 'select'; |
|
|
114 |
|
| 115 |
my @values; |
| 116 |
@values = split /,/, $value if defined($value); |
| 110 |
$chunk->{'CHOICES'} = [ |
117 |
$chunk->{'CHOICES'} = [ |
| 111 |
sort { $a->{'text'} cmp $b->{'text'} } |
118 |
sort { $a->{'text'} cmp $b->{'text'} } |
| 112 |
map { { text => $options{'choices'}->{$_}, value => $_, selected => ( $_ eq $value || ( $_ eq '' && ( $value eq '0' || !$value ) ) ) } } |
119 |
map { |
|
|
120 |
my $c = $_; |
| 121 |
{ |
| 122 |
text => $options{'choices'}->{$c}, |
| 123 |
value => $c, |
| 124 |
selected => ( |
| 125 |
grep { $_ eq $c || ( $c eq '' && ($value eq '0' || !$value ) ) } @values |
| 126 |
) ? 1 : 0, |
| 127 |
} |
| 128 |
} |
| 113 |
keys %{ $options{'choices'} } |
129 |
keys %{ $options{'choices'} } |
| 114 |
]; |
130 |
]; |
|
|
131 |
|
| 132 |
# Add a first blank value if needed |
| 133 |
unshift @{ $chunk->{CHOICES} }, { |
| 134 |
text => '', |
| 135 |
value => '', |
| 136 |
} if $add_blank && $chunk->{type} eq 'select'; |
| 137 |
|
| 115 |
} elsif ( $options{'multiple'} ) { |
138 |
} elsif ( $options{'multiple'} ) { |
| 116 |
my @values; |
139 |
my @values; |
| 117 |
@values = split /,/, $value if defined($value); |
140 |
@values = split /,/, $value if defined($value); |