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); |