github.com/grafana/pyroscope@v1.18.0/pkg/operations/v2/tool.pagination.gohtml (about) 1 {{/* 2 Required parameters (pass via dict): 3 - BaseURL: string - the base URL without query params (e.g., "?dataset=foo&shard=1") 4 - Page: int - current page number 5 - PageSize: int - items per page 6 - TotalPages: int - total number of pages 7 - HasPrevPage: bool - whether there's a previous page 8 - HasNextPage: bool - whether there's a next page 9 */}} 10 11 {{ define "pagination" }} 12 {{ $baseURL := .BaseURL }} 13 {{ $currentPage := .Page }} 14 {{ $pageSize := .PageSize }} 15 {{ $totalPages := .TotalPages }} 16 {{ $hasPrev := .HasPrevPage }} 17 {{ $hasNext := .HasNextPage }} 18 19 <nav aria-label="Pagination"> 20 <ul class="pagination justify-content-center"> 21 <li class="page-item {{ if not $hasPrev }}disabled{{ end }}"> 22 <a class="page-link" href="{{ $baseURL }}&page=1&page_size={{ $pageSize }}">First</a> 23 </li> 24 <li class="page-item {{ if not $hasPrev }}disabled{{ end }}"> 25 <a class="page-link" href="{{ $baseURL }}&page={{ add $currentPage -1 }}&page_size={{ $pageSize }}">Previous</a> 26 </li> 27 28 {{ $startPage := add $currentPage -2 }} 29 {{ if lt $startPage 1 }}{{ $startPage = 1 }}{{ end }} 30 {{ $endPage := add $currentPage 2 }} 31 {{ if gt $endPage $totalPages }}{{ $endPage = $totalPages }}{{ end }} 32 33 {{ if gt $startPage 1 }} 34 <li class="page-item disabled"><span class="page-link">...</span></li> 35 {{ end }} 36 37 {{ range $page := seq $startPage $endPage }} 38 <li class="page-item {{ if eq $page $currentPage }}active{{ end }}"> 39 <a class="page-link" href="{{ $baseURL }}&page={{ $page }}&page_size={{ $pageSize }}">{{ $page }}</a> 40 </li> 41 {{ end }} 42 43 {{ if lt $endPage $totalPages }} 44 <li class="page-item disabled"><span class="page-link">...</span></li> 45 {{ end }} 46 47 <li class="page-item {{ if not $hasNext }}disabled{{ end }}"> 48 <a class="page-link" href="{{ $baseURL }}&page={{ add $currentPage 1 }}&page_size={{ $pageSize }}">Next</a> 49 </li> 50 <li class="page-item {{ if not $hasNext }}disabled{{ end }}"> 51 <a class="page-link" href="{{ $baseURL }}&page={{ $totalPages }}&page_size={{ $pageSize }}">Last</a> 52 </li> 53 </ul> 54 </nav> 55 {{ end }}