Lines 19-26
use Modern::Perl;
Link Here
|
19 |
|
19 |
|
20 |
use Mojo::Base 'Mojolicious::Controller'; |
20 |
use Mojo::Base 'Mojolicious::Controller'; |
21 |
|
21 |
|
|
|
22 |
use C4::Auth qw( haspermission ); |
23 |
use C4::Context; |
24 |
|
22 |
use C4::Biblio qw( GetBiblioData AddBiblio ModBiblio DelBiblio ); |
25 |
use C4::Biblio qw( GetBiblioData AddBiblio ModBiblio DelBiblio ); |
23 |
use C4::Items qw ( AddItemBatchFromMarc ); |
26 |
use C4::Items qw ( AddItemBatchFromMarc GetHiddenItemnumbers ); |
24 |
use Koha::Biblios; |
27 |
use Koha::Biblios; |
25 |
use MARC::Record; |
28 |
use MARC::Record; |
26 |
use MARC::Batch; |
29 |
use MARC::Batch; |
Lines 46-52
sub getitems {
Link Here
|
46 |
unless ($biblio) { |
49 |
unless ($biblio) { |
47 |
return $c->$cb({error => "Biblio not found"}, 404); |
50 |
return $c->$cb({error => "Biblio not found"}, 404); |
48 |
} |
51 |
} |
49 |
return $c->$cb({ biblio => $biblio->unblessed, items => $biblio->items->unblessed }, 200); |
52 |
|
|
|
53 |
my $items = $biblio->items->unblessed; |
54 |
my $user = $c->stash('koha.user'); |
55 |
|
56 |
if (_hide_opac_hidden_items($user)) { |
57 |
$items = _filter_hidden_items($items); |
58 |
} |
59 |
|
60 |
return $c->$cb({ biblio => $biblio->unblessed, items => $items }, 200); |
50 |
} |
61 |
} |
51 |
|
62 |
|
52 |
sub getexpanded { |
63 |
sub getexpanded { |
Lines 56-62
sub getexpanded {
Link Here
|
56 |
unless ($biblio) { |
67 |
unless ($biblio) { |
57 |
return $c->$cb({error => "Biblio not found"}, 404); |
68 |
return $c->$cb({error => "Biblio not found"}, 404); |
58 |
} |
69 |
} |
|
|
70 |
|
59 |
my $expanded = $biblio->items->unblessed; |
71 |
my $expanded = $biblio->items->unblessed; |
|
|
72 |
my $user = $c->stash('koha.user'); |
73 |
|
74 |
if (_hide_opac_hidden_items($user)) { |
75 |
$expanded = _filter_hidden_items($expanded); |
76 |
} |
77 |
|
60 |
for my $item (@{$expanded}) { |
78 |
for my $item (@{$expanded}) { |
61 |
|
79 |
|
62 |
# we assume item is available by default |
80 |
# we assume item is available by default |
Lines 170-173
sub delete {
Link Here
|
170 |
} |
188 |
} |
171 |
} |
189 |
} |
172 |
|
190 |
|
|
|
191 |
sub _hide_opac_hidden_items { |
192 |
my ($user) = @_; |
193 |
|
194 |
my $isStaff = haspermission($user->userid, {borrowers => 1}); |
195 |
|
196 |
# Hide the hidden items from all but staff |
197 |
my $hide_items = ! $isStaff && ( C4::Context->preference('OpacHiddenItems') !~ /^\s*$/ ); |
198 |
|
199 |
return $hide_items; |
200 |
} |
201 |
|
202 |
sub _filter_hidden_items { |
203 |
my ($items) = @_; |
204 |
|
205 |
my @hiddenitems = C4::Items::GetHiddenItemnumbers( @{$items} ); |
206 |
|
207 |
my @filteredItems = (); |
208 |
|
209 |
# Convert to a hash for quick searching |
210 |
my %hiddenitems = map { $_ => 1 } @hiddenitems; |
211 |
for my $item (@{$items}) { |
212 |
next if $hiddenitems{$item->{itemnumber}}; |
213 |
push @filteredItems, $item; |
214 |
} |
215 |
|
216 |
return \@filteredItems; |
217 |
} |
218 |
|
173 |
1; |
219 |
1; |
174 |
- |
|
|