File: _pagination.html.ep

package info (click to toggle)
libminion-perl 9.09%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,016 kB
  • sloc: perl: 1,097; makefile: 9
file content (67 lines) | stat: -rw-r--r-- 2,138 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
% use POSIX;

% my $last_page    = POSIX::ceil($total / $limit);
% my $current_page = int($offset / $limit) + 1;
% my $prev_offset  = ($offset - $limit) < 0 ? 0 : $offset - $limit;
% my $next_offset  = $offset + $limit;
% my $last_offset  = ($last_page - 1) * $limit;

<nav class="text-center">
  <ul class="pagination">
    % if ($current_page == 1) {
      <li class="page-item disabled">
        <a class="page-link">First</a>
    % }
    % else {
      <li class="page-item">
        % my $url = url_with->query([offset => 0]);
        <a class="page-link" href="<%= $url %>">First</a>
    % }
    </li>
    % if ($current_page == 1) {
      <li class="page-item disabled">
        <a class="page-link">Previous</a>
    % }
    % else {
      <li class="page-item">
        % my $url = url_with->query([offset => $prev_offset]);
        <a class="page-link" href="<%= $url %>">Previous</a>
    % }
    </li>
    % my $start = $current_page >= 3 ? $current_page - 2 : 1;
    % $start = $start >= ($last_page - 4) ? $last_page - 4 : $start;
    % $start = 1 if $start < 1;
    % my $end = $last_page < ($start + 4) ? $last_page : $start + 4;
    % for my $i ($start .. $end) {
      % if ($i == $current_page) {
        <li class="page-item active"><a class="page-link"><%= $i %></a></li>
      % }
      % else {
        <li class="page-item">
          % my $url = url_with->query([offset => ($i - 1) * $limit]);
          <a class="page-link" href="<%= $url %>"><%= $i %></a>
        </li>
      % }
    % }
    % if ($current_page >= $last_page) {
      <li class="page-item disabled">
        <a class="page-link">Next</a>
    % }
    % else {
      <li class="page-item">
        % my $url = url_with->query([offset => $next_offset]);
        <a class="page-link" href="<%= $url %>">Next</a>
    % }
    </li>
    % if ($current_page >= $last_page) {
      <li class="page-item disabled">
        <a class="page-link">Last</a>
    % }
    % else {
      <li class="page-item">
        % my $url = url_with->query([offset => $last_offset]);
        <a class="page-link" href="<%= $url %>">Last</a>
    % }
    </li>
  </ul>
</nav>