[Koha-bugs] [Bug 30526] New: The pagination in the REST API does not work if $c->objects->search is called multiple times.
bugzilla-daemon at bugs.koha-community.org
bugzilla-daemon at bugs.koha-community.org
Wed Apr 13 16:06:19 CEST 2022
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=30526
Bug ID: 30526
Summary: The pagination in the REST API does not work if
$c->objects->search is called multiple times.
Change sponsored?: ---
Product: Koha
Version: unspecified
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P5 - low
Component: REST API
Assignee: koha-bugs at lists.koha-community.org
Reporter: andreas.jonsson at kreablo.se
CC: tomascohen at gmail.com
The REST-plugin Koha::REST::Plugin::Pagination defines two methods:
dbic_merge_pagination and add_pagination_headers. The method
add_pagination_headers use the helper subroutine _build_link. The last
call in add_pagination_headers looks like this:
push @links,
_build_link( $c,
{ page => $pages, per_page => $per_page, rel => 'last', params
=> $args->{params} } );
Here is _build_link:
sub _build_link {
my ( $c, $args ) = @_;
my $params = $args->{params};
$params->{_page} = $args->{page};
$params->{_per_page} = $args->{per_page};
Note that the original parameters _page and _per_page is overwritten
here. This means that _page will be $pages. Subsequent calls to
$c->objects->search will, thus, always return the last page.
At least REST::V1::Holds::pickup_locations is affected by this
(because a redundant call to $c->objects->search is made if
AllowHoldPolicyOverride is activated). This causes the dropdown menu with
pickup locations in the holds view to only contain the last page of libraries
if there are more than 20 pickup libraries and AllowHoldPolicyOverride is
activated.
--
You are receiving this mail because:
You are the assignee for the bug.
You are watching all bug changes.
More information about the Koha-bugs
mailing list