You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.1 KiB
29 lines
1.1 KiB
mixin renderPaginationBar (baseUrl, totalItemCount, urlParameters = '')
|
|
-
|
|
var startPage = pagination.p - 2;
|
|
if (startPage < 1) {
|
|
startPage = 1;
|
|
}
|
|
var endPage = startPage + 4;
|
|
var lastPage = Math.floor(totalItemCount / pagination.cpp);
|
|
if ((totalItemCount % pagination.cpp) !== 0) {
|
|
++lastPage;
|
|
}
|
|
if (endPage > lastPage) {
|
|
endPage = lastPage;
|
|
}
|
|
|
|
ul(aria-label="Page navigation").uk-pagination.uk-flex-center
|
|
li(class= (pagination.p === 1) ? 'uk-disabled' : undefined)
|
|
a(href=`${baseUrl}?p=${pagination.p - 1}${urlParameters}`)
|
|
span(uk-pagination-previous).uk-margin-small-right
|
|
span prev
|
|
|
|
while startPage <= endPage
|
|
li(class= (startPage === pagination.p) ? 'active' : undefined)
|
|
a(href=`${baseUrl}?p=${startPage}${urlParameters}`)= startPage++
|
|
|
|
li(data-last-page= lastPage, class= (pagination.p === lastPage) ? 'uk-disabled' : undefined)
|
|
a(href=`${baseUrl}?p=${pagination.p + 1}${urlParameters}`)
|
|
span next
|
|
span(uk-pagination-next).uk-margin-small-left |