View | Details | Raw Unified | Return to bug 26143
Collapse All | Expand All

(-)a/Koha/REST/Plugin/Objects.pm (-7 / +15 lines)
Lines 69-81 sub register { Link Here
69
            $reserved_params->{_per_page} //= C4::Context->preference('RESTdefaultPageSize');
69
            $reserved_params->{_per_page} //= C4::Context->preference('RESTdefaultPageSize');
70
            $reserved_params->{_page}     //= 1;
70
            $reserved_params->{_page}     //= 1;
71
71
72
            # Merge pagination into query attributes
72
            unless ( $reserved_params->{_per_page} == -1 ) {
73
            $c->dbic_merge_pagination(
73
                # Merge pagination into query attributes
74
                {
74
                $c->dbic_merge_pagination(
75
                    filter => $attributes,
75
                    {
76
                    params => $reserved_params
76
                        filter => $attributes,
77
                }
77
                        params => $reserved_params
78
            );
78
                    }
79
                );
80
            }
79
81
80
            # Generate prefetches for embedded stuff
82
            # Generate prefetches for embedded stuff
81
            $c->dbic_merge_prefetch(
83
            $c->dbic_merge_prefetch(
Lines 129-134 sub register { Link Here
129
                    params => $args,
131
                    params => $args,
130
                });
132
                });
131
            }
133
            }
134
            else {
135
                $c->add_pagination_headers({
136
                    total => $objects->count,
137
                    params => $args,
138
                });
139
            }
132
140
133
            return $objects->to_api({ embed => $embed });
141
            return $objects->to_api({ embed => $embed });
134
        }
142
        }
(-)a/Koha/REST/Plugin/Pagination.pm (-10 / +13 lines)
Lines 61-80 If page size is omitted, it defaults to the value of the RESTdefaultPageSize sys 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,
Lines 86-92 If page size is omitted, it defaults to the value of the RESTdefaultPageSize sys 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
- 

Return to bug 26143