Link Here
|
61 |
my ( $c, $args ) = @_; |
61 |
my ( $c, $args ) = @_; |
62 |
|
62 |
|
63 |
my $total = $args->{total}; |
63 |
my $total = $args->{total}; |
64 |
my $req_page = $args->{params}->{_page}; |
64 |
my $req_page = $args->{params}->{_page} // 1; |
65 |
my $per_page = $args->{params}->{_per_page} // |
65 |
my $per_page = $args->{params}->{_per_page} // |
66 |
C4::Context->preference('RESTdefaultPageSize') // 20; |
66 |
C4::Context->preference('RESTdefaultPageSize') // 20; |
67 |
|
67 |
|
68 |
# do we need to paginate? |
68 |
my $pages; |
69 |
return $c unless $req_page; |
69 |
if ( $per_page == -1 ) { |
70 |
|
70 |
$req_page = 1; |
71 |
my $pages = int $total / $per_page; |
71 |
$pages = 1; |
72 |
$pages++ |
72 |
} |
73 |
if $total % $per_page > 0; |
73 |
else { |
|
|
74 |
$pages = int $total / $per_page; |
75 |
$pages++ |
76 |
if $total % $per_page > 0; |
77 |
} |
74 |
|
78 |
|
75 |
my @links; |
79 |
my @links; |
76 |
|
80 |
|
77 |
if ( $pages > 1 and $req_page > 1 ) { # Previous exists? |
81 |
if ( $per_page != -1 and $pages > 1 and $req_page > 1 ) { # Previous exists? |
78 |
push @links, |
82 |
push @links, |
79 |
_build_link( |
83 |
_build_link( |
80 |
$c, |
84 |
$c, |
Link Here
|
86 |
); |
90 |
); |
87 |
} |
91 |
} |
88 |
|
92 |
|
89 |
if ( $pages > 1 and $req_page < $pages ) { # Next exists? |
93 |
if ( $per_page != -1 and $pages > 1 and $req_page < $pages ) { # Next exists? |
90 |
push @links, |
94 |
push @links, |
91 |
_build_link( |
95 |
_build_link( |
92 |
$c, |
96 |
$c, |
93 |
- |
|
|