MCPcopy Create free account
hub / github.com/breck7/scroll / _pagingNumbers

Function _pagingNumbers

external/.datatables.js:12473–12520  ·  view source on GitHub ↗

* Compute what number buttons to show in the paging control * * @param {*} page Current page * @param {*} pages Total number of pages * @param {*} buttons Target number of number buttons * @param {boolean} addFirstLast Indicate if page 1 and end should be included * @returns Buttons to s

(page, pages, buttons, addFirstLast)

Source from the content-addressed store, hash-verified

12471 * @returns Buttons to show
12472 */
12473 function _pagingNumbers(page, pages, buttons, addFirstLast) {
12474 var numbers = [],
12475 half = Math.floor(buttons / 2),
12476 before = addFirstLast ? 2 : 1,
12477 after = addFirstLast ? 1 : 0
12478
12479 if (pages <= buttons) {
12480 numbers = _range(0, pages)
12481 } else if (buttons === 1) {
12482 // Single button - current page only
12483 numbers = [page]
12484 } else if (buttons === 3) {
12485 // Special logic for just three buttons
12486 if (page <= 1) {
12487 numbers = [0, 1, "ellipsis"]
12488 } else if (page >= pages - 2) {
12489 numbers = _range(pages - 2, pages)
12490 numbers.unshift("ellipsis")
12491 } else {
12492 numbers = ["ellipsis", page, "ellipsis"]
12493 }
12494 } else if (page <= half) {
12495 numbers = _range(0, buttons - before)
12496 numbers.push("ellipsis")
12497
12498 if (addFirstLast) {
12499 numbers.push(pages - 1)
12500 }
12501 } else if (page >= pages - 1 - half) {
12502 numbers = _range(pages - (buttons - before), pages)
12503 numbers.unshift("ellipsis")
12504
12505 if (addFirstLast) {
12506 numbers.unshift(0)
12507 }
12508 } else {
12509 numbers = _range(page - half + before, page + half - after)
12510 numbers.push("ellipsis")
12511 numbers.unshift("ellipsis")
12512
12513 if (addFirstLast) {
12514 numbers.push(pages - 1)
12515 numbers.unshift(0)
12516 }
12517 }
12518
12519 return numbers
12520 }
12521
12522 var __lengthCounter = 0
12523

Callers 1

_pagingDrawFunction · 0.85

Calls 1

_rangeFunction · 0.85

Tested by

no test coverage detected