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