PageSourceSearch

https://www.carringtonmortgage.com/js/core/pager.js

js carringtonmortgage.com collected 2026-10-10 02:44:32 UTC 6,197 bytes, 151 lines download raw bytes

1corp.pager = function ($) {
2    var SORT_ASC_CLASS = 'sorting_asc',
3        SORT_DESC_CLASS = 'sorting_desc',
4        _confirmExitCallback,
5        _pagingDto;
6
7    function getPagerDto(columns, $table, pageNum, pageSize) {
8        _pagingDto = {
9            "SortColumn": getSortColumn(columns, $table),
10            "IsSortAsc": isSortAsc($table),
11            "PageNum": pageNum,
12            "PageSize": pageSize
13        };
14        return _pagingDto;
15    }
16
17    function getDefaultPageSize() {
18        return 20;
19    }
20
21    function getSortColumn(columns, $table) {
22        var index = $table.find('.' + SORT_DESC_CLASS).index();
23        if (index < 0) {
24            index = $table.find('.' + SORT_ASC_CLASS).index();
25        }
26        return columns[index];
27    }
28
29    function isSortAsc($table) { return $("thead tr th", $table).hasClass(SORT_ASC_CLASS); }
30
31    function onSortColumnClick(th, columns, $table, performPagingCallback, $pager, pageSize) {
32        if (setSortIndicator(th, columns)) {
33            if ($('tbody tr', $table).length > 0) {
34                //getPagerDto(columns, $table, +$('li.disabled', $pager).text());
35                getPagerDto(columns, $table, +$('li.current', $pager).text(), pageSize);
36                if (_pagingDto.PageNum) {
37                    performPagingCallback(_pagingDto);
38                }
39            }
40        }
41    }
42
43    function setSortIndicator(th, columns) {
44        var $this = $(th),
45            index = $this.index();
46        if (columns[index] == '') { return false; }
47
48        if ($this.is('.' + SORT_DESC_CLASS + ', .' + SORT_ASC_CLASS)) {
49            $this.toggleClass(SORT_DESC_CLASS + ' ' + SORT_ASC_CLASS);
50        }
51        else {
52            var $siblings = $this.siblings(),
53                isSortAsc = $siblings.hasClass(SORT_ASC_CLASS);
54            $siblings.removeClass(SORT_DESC_CLASS + ' ' + SORT_ASC_CLASS);
55            $this.addClass(isSortAsc ? SORT_ASC_CLASS : SORT_DESC_CLASS);
56        }
57        return true;
58    }
59
60    return {
61        initialize: function (columns, $table, $pager, performPagingCallback, confirmExitCallback, pageNum, pageSize) {
62            _confirmExitCallback = confirmExitCallback;
63            pageSize = pageSize || getDefaultPageSize();
64            getPagerDto(columns, $table, pageNum || 1, pageSize);
65            this.createPager(columns, $table, $pager);
66
67            $table.on('click', 'thead tr th', function (e, b) {
68                if (e.target.tagName.toLowerCase() == 'th' && !$(e.target).hasClass("no-sort")) {
69                    onSortColumnClick(this, columns, $table, performPagingCallback, $pager, pageSize);
70                }
71            });
72
73            $pager.on('click', 'a', function () {
74                if (_confirmExitCallback === undefined || _confirmExitCallback()) {
75                    if ($(this).text() === "Next") {
76                        //var nextp = $(this).parent().prev().text();
77                        var nextp = _pagingDto.PageNum+1;
78                        _pagingDto.PageNum = nextp;
79                    }
80                    else if ($(this).text() === "Previous") {
81                        var prevp = _pagingDto.PageNum - 1;
82                        _pagingDto.PageNum = prevp;
83                    } 
84                    else {
85                        _pagingDto.PageNum = +$(this).text();
86                    }
87                    performPagingCallback(_pagingDto);
88                }
89                return false;
90            });
91        },
92        getInitPagerDTO: function (columns, $table, pageSize) {
93            pageSize = pageSize || getDefaultPageSize();
94            return getPagerDto(columns, $table, 1, pageSize);
95        },
96        getCurrentPagerDTO: function () {
97            return _pagingDto;
98        },
99        createPager: function (columns, $table, $pager) {
100            var $rowCount = $('#row-count-row'),
101                rowCount = +$rowCount.attr("totalRows");
102
103            if (isNaN(rowCount)) { return; }
104
105            $rowCount.remove();
106            $pager.children().remove();
107
108            // Rows
109            var startRow = (_pagingDto.PageNum - 1) * _pagingDto.PageSize + 1,
110                endRow = startRow + _pagingDto.PageSize - 1;
111            if (endRow > rowCount) {
112                endRow = rowCount;
113            }
114            if (endRow < startRow) {
115                startRow = endRow;
116                return;
117            }
118           
119            var pages = Math.ceil(rowCount / _pagingDto.PageSize);
120            var startPage = Math.max(1, _pagingDto.PageNum - 5);
121            var endPage = Math.min(pages, _pagingDto.PageNum + 5);
122
123            var pager = '<li class="page-item"><span class="pagination-info" href="#">Rows ' + startRow + '-' + endRow + ' of ' + rowCount + '&nbsp;&nbsp;</span></li>';
124            if (startPage !== _pagingDto.PageNum)
125                pager += '<li class="page-item"><a class="page-link" href="#">Previous</a></li>';
126
127            for (var i = startPage; i <= endPage; i++) {
128                if (i !== _pagingDto.PageNum) {
129                    pager += '<li class="page-item"><a class="page-link" href="#">
129' + i + '</a></li>';
130                }
131                else {
132                    pager += '<li class="page-item active current"><a class="page-link" href="#">' + i + '</a></li>';
133                }
134                //if (i != _pagingDto.PageNum) {
135                //    pager += '<li class="active"><a href="#">' + i + '</a></li>';
136                //}
137                //else {
138                //    pager += '<li class="disabled"><a href="#">' + i + '</a></li>';
139                //}
140            }
141            if (endPage === _pagingDto.PageNum) {
142                //pager += '<li class="page-item"><a class="page-link">Next</a></li>';
143            } else {
144                pager += '<li class="page-item"><a class="page-link" href="#">Next</a></li>';
145            }
146            // <li class="active"><a href="#">Next</a><li>
147            pager += '</ul>';
148            $pager.append(pager).show();
149        }
150    };
151}(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.