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