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 + ' </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.